Bianca Pasetti RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE CISALFA TRACCIA DEL PROBLEMA: Il negozio Cisalfa vuole tener traccia dei prodotti acquistati dai clienti. Di ogni cliente si vuole conoscere nome, cognome, indirizzo e data di nascita. Di ogni tipo di prodotto è necessario sapere codice, marca, nome, tipo di prodotto , caratteristiche del prodotto e prezzo di listino. Per ogni acquisto verrà identificato il codice del cliente, cognome e nome, la data di acquisto, il tipo del prodotto acquistato inclusa la categoria (se attrezzatura,calzatura o abbigliamento) e infine il prezzo totale della spesa. E’ stato richiesto di realizzare un sito web tipo e-commerce per questo negozio che consenta di gestire l’intera procedura informatica e che permetta al visitatore di visualizzare i prodotti presenti in magazzino, al responsabile Cisalfa di visualizzare i clienti presenti nel file. SCHEMA E‐R DELLA BASE DEI DATI: fi_codfit fi_nome fi_tipo ca_tipo fi_carat ca_prezzo ca_codca ca_categ fi_prezzo FITNESS CALZATURE E E ab_tipo ab_codab ab_prezzo VENGONO ac_codcli ac_categ ab_categ cl_codcli ac_cognom ACQUISTO ac_prezzo ABBIGLIAMENTO cl_cognom ac_data CLIENTE DA ac_tipo cl_annnas cl_nazio FITNESS L’attributo fi_codfit della tabella Fitness, memorizza il codice dell’attrezzatura fitness in 6 caratteri alfanumerici. L’attributo fi_nome della tabella Fitness, memorizza il nome dell’attrezzatura in 50 caratteri alfanumerici. L’attributo fi_tipo della tabella Fitness, memorizza il tipo dell’attrezzatura in 4 caratteri alfanumerici. L’attributo fi_carat della tabella Fitness, memorizza la caratteristica dell’attrezzatura in 100 caratteri alfanumerici. L’attributo fi_prezzo della tabella Fitness, memorizza il prezzo dell’attrezzatura CALZATURE L’attributo ca_codca della tabella Calzature, memorizza il codice delle calzature in 6 caratteri alfanumerici. L’attributo ca_tipo della tabella Calzature, memorizza il tipo della carzatura in 6 caratteri alfanumerici. L’attributo ca_prezzo della tabella Calzature, memorizza il prezzo della carzatura in 6 caratteri alfanumerici. L’attributo ca_categ della tabella Calzature, memorizza la categoria della carzatura in 6 caratteri alfanumerici. ABBIGLIAMENTO L’attributo ab_codab della tabella Abbigliamento, memorizza il codice dell’abbigliamento in 6 caratteri alfanumerici. L’attributo ab_tipo della tabella Abbigliamento, memorizza il tipo dell’abbigliamento in 30 caratteri alfanumerici. L’attributo ab_prezzo della tabella Abbigliamento, memorizza il prezzo dell’abbigliamento in 4 caratteri alfanumerici. L’attributo ab_categ della tabella Abbigliamento, memorizza la categoria dell’abbigliamento in 30 caratteri alfanumerici. ACQUISTO L’attributo ac_codcli della tabella Acquisto, memorizza il codice del cliente in 6 caratteri alfanumerici. L’attributo ac_cognom della tabella Acquisto, memorizza il cognome e nome del cliente in 6 caratteri alfanumerici. L’attributo ac_data della tabella Acquisto, memorizza la data di acquisto in formato DATE. L’attributo ac_prezzo della tabella Acquisto, memorizza il prezzo dell’acquisto in 13 caratteri alfanumerici. L’attributo ac_categ della tabella Acquisto, memorizza la categoria dell’acquisto in 50 caratteri alfanumerici. L’attributo ac_tipo della tabella Acquisto, memorizza il tipo dell’acquisto in 50 caratteri alfanumerici. CLIENTE L’attributo cl_codcli della tabella Cliente, memorizza il codice del cliente in 6 caratteri alfanumerici. L’attributo cl_cognom della tabella Cliente, memorizza il cognome e nome in 2 caratteri alfanumerici. L’attributo cl_annnas della tabella Cliente, memorizza l’anno di nascita del cliente in 50 caratteri alfanumerici. L’attributo cl_nazion della tabella Cliente, memorizza la nazione del cliente in 30 caratteri alfanumerici. SCHEMA RELAZIONALE: FITNESS CODICE FITNESS NOME DELL’ATTREZZO TIPO ATTREZZO CARATTERISTICA ATTREZZO PREZZO ATTREZZO ACQUISTO CODICE CLIENTE COGNOME E NOME DATA PREZZO CATEGORIA TIPO CALZATURE CODICE CALZATURE TIPO PREZZO CATEGORIA ABBIGLIAMENTO CODICE ABBIGLIAMENTO TIPO PREZZO CATEGORIA CLIENTE CODICE CLIENTE COGNOME E NOME ANNO DI NASCITA NAZIONE La Chiave esterna Codice fitness, Codice calzature, Codice abbigliamento della tabella Fitness, Calzature, Abbigliamento sono in relazione con la tabella Acquisto mediante le chiavi primarie Codice fitness, Codice calzature, Codice abbigliamento. La Chiave esterna Codice cliente della tabella Acquisto è in relazione con la tabella Cliente mediante la chiave primaria Codice cliente. ANALISI DI MASSIMA: Il sito sarà gestito come un normale negozio di acquisti on‐line di un negozio. Verrà utilizzato un template per l’impostazione grafica della pagina, ogni cliente dovrà registrarsi per accedere al negozio attraverso gli user‐name e password, memorizzate nel file di testo apposito. L’utente potrà selezionare il tipo di prodotti che desidera acquistare e che verranno registrati in un altro file di testo. L’amministratore potrà accedere anche egli attraverso un’area specifica separata con user e password che gli permetterà di aggiungere, modificare o eliminare i prodotti all’interno del file di testo. ANALISI DI DETTAGLIO: La “popolazione”(cioè caricare le tabelle di dati) delle tabelle avviene tramite una pagina html contenente un modulo form dati, che una volta compilato viene inviato ad una pagina dinamica scritta in linguaggio Php che elabora i dati e permette l’inserimento,la modifica,la cancellazione e l’interrogazione (queries) dei record all’interno delle tabelle del database. Nell’HTML viene creata la tabella per inserire tutti i dati in questo modo: (es. calzature_1.html) <html> <head> <title>Inserimento calzature</title> </head> <body> <?php echo"<h2><center>inserire i dati delle calzature e inviare il form</center></h2>"; echo"<form action='calzature_2.php' method='POST'>"; echo"Codice calzature <input name='codca' size='6' maxlength='6'><p>"; echo"Tipo <input name='tipo' size='50' maxlength='50'><p>"; echo"Prezzo <input name='prezzo' size='5.0' maxlength='5.0'><p>"; echo"Categoria <input name='categ' size='30' maxlength='30'><p>"; echo"<input type='submit' value='invia'>"; echo"<input type='reset' value='cancella'>"; echo"</form>"; ?> </body> </html> Nel PHP (es. calzature_2.php) vengono riportate le variabili della pagina HTML ma aggiungendo ,davanti a ciascuna, il simbolo $ che permette la loro attivazione. // Inizializzazione delle variabili $codca=$_POST[‘codca’]; $tipo=$_POST[‘tipo’]; $prezzo=$_POST[‘prezzo’]; $categ=$_POST[‘categ’]; Sempre nel PHP avviene la connessione al database MySql : $db=mysql_connect(“localhost”,”root”); Connettersi a un database vuol dire nominare un’origine di dati (il database) dal quale saranno prese tutte le informazioni per popolare il Sito Web. Quando è avvenuto il collegamento, si crea il comando sql per l’inserimento dei dati: $sqlinterr=”insert calzature”; $sqlinterr .=”(ca_codca, ca_tipo, ca_prezzo, ca_categ)”; ( vengono richiamate le variabili) $sqlinterr .=”values” (inserimento dei valori) $sqlinterr .=”(‘$codca’,’$tipo’,’$prezzo’,’$categ’)”; (con questo comando i dati inseriti in php vengono copiati nel database) Dopo di chè si inviano i dati della tabella attori al database: mysql_db_query(“cisalfa”,$sqlinterr); Si verifica che i dati siano stati inseriti correttamente: $num=mysql_affected_rows(); Con il comando if($num>0) potremo vedere se i dati sono stati inseriti correttamente. Si potranno verificare 2 condizioni: 1) Echo “Nuovo record inserito correttamente Oppure 2) Else echo “ERRORE!!! Record non inserito” Infine viene chiuso il database MySql: mysql_close($db); Secondo programma: Annullamento Nell’HTML viene creata la tabella per annullare i dati in questo modo: (es. calzature_a1.html) <html> <head> <title>Annullamento calzature</title> </head> <body> Selezionare il record da cancellare:<p> <form action="calzature_a2.php" method="POST"> <?php //Connessione al DataBase MySQL $db=mysql_connect("localhost","root","_itcgbassi_"); //Creazione della variabile per l'interrogazione $sqlinterr="select * from calzature"; //Esecuzione dell'interrogazione $res=mysql_db_query("cisalfa",$sqlinterr); //Numero di record estratti dell'interrogazione $num=mysql_num_rows($res); //Intestazione della tabella echo "<table border='1' align='center'> <tr> <td>Selezione</td> <td>Codice calzatura</td> <td>Tipo</td> <td>Prezzo</td> <td>Categoria</td> </tr>"; //Visualizzazione dei record estratti for ($i=0;$i<$num;$i++) { $codca=mysql_result($res,$i,"ca_codca"); $tipo=mysql_result($res,$i,"ca_tipo"); $prezzo=mysql_result($res,$i,"ca_prezzo"); $categ=mysql_result($res,$i,"ca_categ"); //Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$codca'></td>"; echo "<td>$codca</td> <td>$tipo</td> <td>$prezzo</td> <td>$categ</td> </tr>"; } //Chiusura della tabella echo "</table>"; //Chiusura del DataBase MySQL mysql_close($db); ?> <p> <input type="submit" value="Cancellare il record"> </form> </body> </html> Nel PHP (es. calzature_a2.php) vengono riportate le variabili della pagina HTML ma aggiungendo ,davanti a ciascuna, il simbolo $ che permette la loro attivazione. <html> <head> <title>Cancellazione del record calzature selezionato</title> </head> <body> <?php //Inizializzazione delle variabili $selezi=$_POST[ 'selezi']; //Controllo che l'utente abbia selezionato il record da cancellare if ($selezi) { //Connessione al DataBase MySql $db=mysql_connect("localhost","root","_itcgbassi_"); //Creazione del comando $sqlinterr di cancellazione $sqlinterr="delete from calzature where"; $sqlinterr.=" ca_codca='$selezi' "; //Esecuzione del comando $sqlinterr $res=mysql_db_query("cisalfa",$sqlinterr); //Verifica che $num > 0 $num=mysql_affected_rows(); if ($num>0) echo"Record cancellato.<p>"; else echo "Record non cancellato.<p>"; //Chiusura del DataBase Mysql mysql_close($db); } else echo"Non &egrave; stato selezionato nessun record<p>"; ?> Torna a <a href="calzature_a1.php">Selezione</a> </body> </html> Terzo programma: Interrogazione Nell’HTML viene creata la tabella per consultare tutti i dati in questo modo: (es. calzature_q1.html) <html> <head> <title>Consultazione tabella calzature</title> </head> <body> <?php // Apertura del Database MySQL $db=mysql_connect("localhost","root","_itcgbassi_"); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from calzature "; /* Apertura del DB cisalfa inserito nel DataBase MySQL */ $db_selected = mysql_select_db('cisalfa', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("cisalfa",$sqlinterr); //$res=mysql_query($sqlinterr); // N. di record estratti dal comando SQL $num=mysql_num_rows($res); // Costruzione dell'intestazione della tabella echo "<h2><center>Consultazione calzature</center></h2>"; echo "<table border='3' align='center'> <tr> <td>Codice calzatura</td> <td>Tipo</td> <td>Prezzo</td> <td>Categoria</td> </tr>"; // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $codca=mysql_result($res,$i,"ca_codca"); $tipo=mysql_result($res,$i,"ca_tipo"); $prezzo=mysql_result($res,$i,"ca_prezzo"); $categ=mysql_result($res,$i,"ca_categ"); // Visualizzazione dei dati letti echo "<tr> <td>$codca</td> <td>$tipo</td> <td>$prezzo</td> <td>$categ</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db); ?> </body> </html> Quarto programma: Modifica (es. calzature_m1.html) <html> <head> <title>Modifica calzature</title> </head> <body> <?php echo "<h2><center>Selezionare una calzatura per la modifica</center></h2>"; //Apertura della form echo "<form action='calzature_m2.php' method='POST'>"; //Connessione al DataBase MySQL $db=mysql_connect("localhost","root","_itcgbassi_"); //Creazione della variabile per l'interrogazione $sqlinterr="select * from calzature"; //Esecuzione dell'interrogazione $res=mysql_db_query("cisalfa",$sqlinterr); //Numero di record estratti dell'interrogazione $num=mysql_num_rows($res); //Intestazione della tabella echo "<table border='1' align='center'> <tr> <td>Codice calzatura</td> <td>Tipo</td> <td>Prezzo</td> <td>Categoria</td> </tr>"; //Visualizzazione dei record estratti for ($i=0;$i<$num;$i++) { $codca=mysql_result($res,$i,"ca_codca"); $tipo=mysql_result($res,$i,"ca_tipo"); $prezzo=mysql_result($res,$i,"ca_prezzo"); $categ=mysql_result($res,$i,"ca_categ"); //Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$codca'></td> <td>$codca</td> <td>$tipo</td> <td>$prezzo</td> <td>$categ</td> </tr>"; } //Chiusura della tabella echo "</table>"; echo "<center><input type='submit' value='Modifica record selezionato'></center>"; //Chiusura del DataBase MySQL mysql_close($db); echo "</form>"; ?> <p </body> </html> (es.calzature_m2.php) <html> <head> <title>Modifica calzature</title> </head> <body> <?php //Inizializzazione delle variabili //$selezi=$_POST[ 'selezi']; $selezi='000004'; if ($selezi) { //Connessione al DataBase MySql $db=mysql_connect("localhost","root","_itcgbassi_"); //Estrazione del record selezionato $sqlinterr="select * from calzature "; $sqlinterr.="where ca_codca='$selezi'"; //Esecuzione del comando di interrogazione $res=mysql_db_query("cisalfa",$sqlinterr); //Visualizzazione del record letto $codab_old=mysql_result($res,0,"ca_codab"); $tipo_old=mysql_result($res,0,"ca_tipo"); $prezzo_old=mysql_result($res,0,"ca_prezzo"); $categ_old=mysql_result($res,0,"ca_categ"); echo "<h3><center>Modifica calzature</center></h3>"; //Creazione della form per la modifica echo "<form action='calzature_m3.php' method='POST'>"; //Modifica dei valori echo "<input name='codca_new' value='$codca_old'><br>"; echo "<input name='tipo_new' value='$tipo_old'><br>"; echo "<input name='prezzo_new' value='$prezzo_old'><br>"; echo "<input name='categ_new' value='$categ_old'><p>"; echo "<input type='submit' value='Salvare le modifiche'>"; echo "<input type='reset' value='Cancella'>"; echo "</form>"; } ?> </body> </html> (es.calzature_m3.php) <html> <head> <title>Modifica calzature</title> </head> <body> <?php //Inizializzazione delle variabili $codca_new=$_POST['codca_new']; $tipo_new=$_POST['tipo_new']; $prezzo_new=$_POST['prezzo_new']; $categ_new=$_POST['categ_new']; $codca=$_POST['codca']; //Connessione al database $db=mysql_connect("localhost","root","_itcgbassi_"); //Costruzione della variabile $sqlinterr per la modifica del record selezionato $sqlinterr="update calzature set"; $sqlinterr.="ca_codca=$codca_new"; $sqlinterr.="ca_tipo=$tipo_new"; $sqlinterr.="ca_prezzo=$prezzo_new"; $sqlinterr.="ca_categ=$categ_new"; $sqlinterr="where ca_codca='codca'"; //Esecuzione del comando $sqlinterr mysql_db_query("cisalfa"; $sqlinterr); //Numero di record soggetti alla modifica $num=mysql_affected_rows(); //Se il record &e; stato trovato if($num>0) echo"record modificato<p>"; else echo"errore!!! record non modificato<p>"; ?> </head> </html> FILE UTILIZZATI: Per l'inserimento, sono stati utilizzati i seguenti file, collegati ai rispettivi programmi. abbigliamento_1.html abbigliamento_2.php fitness_1.html fitness_2.php calzature_1.html calzature_2.php acquisto_1.html acquisto_2.php cliente_1.html cliente_2.php Per l’annullamento, sono stati utilizzati i seguenti file, collegati ai rispettivi programmi. abbigliamento_a1.php abbigliamento_a2.php fitness_a1.php fitness_a2.php calzature_a1.php calzature_a2.php acquisto_a1.php acquisto_a2.php cliente_a1.php cliente_a2.php Per l’interrogazione, sono stati utilizzati i seguenti file, collegati ai rispettivi programmi. abbigliamento_q1.php fitness_q1.php calzature_q1.php acquisto_q1.php cliente_q1.php Per la modifica, sono stati utilizzati i seguenti file, collegati ai rispettivi programmi. abbigliamento_m1.html abbigliamento_m2.php abbigliamento_m3.php fitness_m1.html fitness_m2.php fitness_m3.php calzature_m1.html calzature_m2.php calzature_m3.php acquisto_m1.html acquisto_m2.php acquisto_m3.php cliente_m1.html cliente_m2.php cliente_m3.php VARIABILI UTILIZZATE: Nell’intero programma (le pagine realizzate in php) sono state utilizzate molte variabili sia primarie che di appoggio. Nelle pagine seguenti si trova una tabella che per ogni variabile indica il nome, la pagina in cui la variabile si trova e la funzione della variabili. INSERIMENTO: NOME PAGINA/E FUNZIONE $codca calzature_2.php Variabile che indica il codice delle calzature $tipo calzature_2.php Variabile che indica il tipo di calzature $prezzo calzature_2.php Variabile che indica il prezzo delle calzature $categ calzature_2.php Variabile che indica la categoria delle calzature $db calzature_2.php Variabile che permette la connessione al database $sqlinter calzature_2.php Comando sql per l’inserimento dei dati $num calzature_2.php Per verificare che i dati siano stati inseriti correttamente ANNULLAMENTO: NOME $selezi PAGINA/E Calzature_a2.php $db Calzature_a2.php $sqlinterr $res Calzature_a2.php Calzature_a2.php $num Calzature_a2.php FUNZIONE Variabile che indica il record selezionato Variabile che permette la connessione al database Comando sql per l’inserimento dei dati Variabile che verifica il risultato dell’annullamento Per verificare che i dati siano stati inseriti correttamente INTERROGAZIONE: NOME $db PAGINA/E Calzature_q1.php $sqlinterr $res Calzature_q1.php Calzature_q1.php $num Calzature_q1.php $codca Calzature_q1.php $tipo $prezzo Calzature_q1.php Calzature_q1.php $categ Calzature_q1.php FUNZIONE Variabile che permette la connessione al database Comando sql per l’inserimento dei dati Variabile che verifica il risultato dell’annullamento Per verificare che i dati siano stati inseriti correttamente Variabile che indica il codice delle calzature Variabile che indica il tipo di calzature Variabile che indica il prezzo delle calzature Variabile che indica la categoria delle calzature MODIFICA: NOME $db PAGINA/E Calzature_m2.php $sqlinterr $res Calzature_m2.php Calzature_ m2.php $selezi Calzature_ m2.php $codca_old Calzature_ m2.php $tipo_old Calzature_ m2.php $prezzo_old Calzature_ m2.php $categ_old Calzature_ m2.php FUNZIONE Variabile che permette la connessione al database Comando sql per l’inserimento dei dati Variabile che verifica il risultato dell’annullamento Variabile che indica il record selezionato Variabile che indica la lettura del vecchio record Variabile che indica la lettura del vecchio record Variabile che indica la lettura del vecchio record Variabile che indica la lettura del vecchio record NOME $db PAGINA/E Calzature_m3.php $sqlinterr $codca_new $tipo_new Calzature_ m3.php Calzature_ m3.php Calzature_ m3.php $prezzo_new $categ_new $num Calzature_ m3.php Calzature_ m3.php Calzature_ m3.php FUNZIONE Variabile che permette la connessione al database Comando sql per l’inserimento dei dati Inizializzazione del nuovo record Inizializzazione del nuovo record Inizializzazione del nuovo record Inizializzazione del nuovo record Per verificare che i dati siano stati inseriti correttamente LOGIN AMMINISTRATORE: Per effettuare l’accesso all’area dell’amministratore, è stato creato un form che permettesse ,attraverso le caselle di testo , di inserire l’username e la password dell’amministratore stesso. Una volta entrato nell’area, lui potrà manipolare i dati o meglio inserirne dei nuovi, modificarli oppure cancellarli. REGISTRAZIONE UTENTE E LOGIN UTENTE: Attraverso la registrazione, l’utente può autenticarsi nel sito per conoscere i diversi prodotti offerti e acquistarli. Per fare ciò è stato creato un form che permettesse ,attraverso le caselle di testo , di inserire l’username , l’e‐mail, la password e la verifica della password. Fatto questo, l’utente dovrà inserire il proprio username e password per effettuare il login: attraverso la connessione al database, il programma creato verificata l’esistenza della registrazione e se questa è avvenuta con successo l’utente potrà soddisfare i propri bisogni. LOGOUT: Due semplici variabili permettono all’utente autenticato di scollegarsi dopo aver effettuato i suoi acquisti o visitato il sito. <?php session_start(); session_destroy(); ?> CARRELLO: L’utente dopo aver selezionato i prodotti da acquistare potrà verificare il riepilogo e il totale della sua spesa. Automaticamente verrà diminuita la quantità disponibile del prodotto vendibile. MODULO D’USO IN ITALIANO: Durante lo sviluppo del programma abbiamo stabilito che la collocazione del database sarebbe stato su un web server che può essere easyphp o xampp. Xampp è un software contente il server web apache e il database Mysql. Noi creeremo il nostro database con la sua relativa tabella su il server apache. Per scaricare xampp cliccate su questo link: http://www.apachefriends.org/it/xampp.html dal link sopra scaricate e installate il software. Il programma non andrà installato come gli altri programmi nella cartella programma sul disco locale C ma direttamente sul disco locale C. alla fine dell’installazione apparirà la seguente finestra: Da questa finestra cliccare sul tasto start del modulo apache per attivarlo da qual punto in poi potrete creare tutti i database che volete. Adesso aprire il file in HTML e comparirà la seguente schermata: In alto si possono trovare la zona della Home, Chi siamo, Contattaci, I nostri prodotti e l’Area dell’amministratore. L’amministratore, attraverso username e password, potrà entrare nell’area dell’amministratore in cui consultare i vari programmi di inserimento, annullamento, interrogazione e modifica. Nello stesso modo, nell’area specifica, potrà accedere iscrivendo i propri dati. MODULO D’USO IN INGLESE: During development of the program we have established that the location of the database would be on a web server that can be easyphp or xampp. XAMPP is a software containing the Apache web server and MySQL database. We will create our database with its corresponding table of the apache server. To download xampp click on this link: http://www.apachefriends.org/it/xampp.html from the above links to download and install the software. The program will not like the other programs installed in your C program on the local disk but directly on the local disk C. at the end of the installation the following window appears: From this window you will have to click the start button to activate the module apache from which point onwards, you can create as many databases as you like. After you have created all of the first stage of the program to use it you must enter with a browser on the server where you entered the program entering his IP address and you will see a page with text boxes to insert the data. Here is an example: After entering data, click on the ENTER button that will record the data entered in the table actors. Now open the file in HTML and the following screen appears: At the top you can find the area of the Home, About Us, Contact Us, Our Products, and the Area Administrator. The administrator, via a username and password, enter the administrator can see where the various programs for the integration, cancellation, query and edit. Similarly, in the specific area, can access their data registering.