Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi RELAZIONE E-COMMERCE http://dfranceschetti.altervista.org/esercizi_informatica/ec ommerce/index.html 1 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi RELAZIONE RELATIVA ALLA GESTIONE DEL SITO DI E-COMMERCE Indice: 1) TRACCIA DEL PROBLEMA…………………………………………………….……pag. 3 2) ANALISI DI MASSIMA……………………………………………………………..….pag. 3 3) ANALISI DI MINIMA………………………………………………………….………..pag. 5 4) LOGIN AMMINISTRATORI……………………………………………….…………..pag. 6 5) CONCETTO INTEGRITA’ REFERENZIALE…………………...……….………….pag. 6 6) REGISTRAZIONE UTENTI………………………………………………….………..pag. 7 7) LOGIN UTENTE……………………………………………………………………….pag. 8 8) CARRELLO……………………………………………………………………………pag. 8 9) MODELLO E/R………………………………………………………………….……..pag. 8 10) CREAZIONE DATABASE MY_DFRANCESCHETTI………………...…………...pag. 9 11) MANUALE D’USO EASY PHP…………………………………………...………….pag. 10 12) INSTALLAZIONE DATABASE SU ALTERVISTA……………………………...…..pag.11 13) TABELLA VARIABILI UTILIZZATE…………………………………………………..pag.13 14) LISTING INTERA PROCEDURA…………………………………………………....pag. 20 PARTE TECNICA 15) COS’ E’ UN DATABASE (DIFFERENZA INNODB E MYISAM)………...……….pag. 72 16) SERVER WEB………………………………………………………….……………..pag. 72 17) DIFFERENZA PAGINE STATICHE E DINAMICHE………………………………pag. 72 18) COS’ E’ MYSQL……………………………………………………………………….pag. 73 2 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi 19) COS’ E’ PHP…………………………………………………………………………..pag. 73 TRACCIA DEL PROBLEMA Realizzare un sito di tipo e-commerce che consenta di gestire l’intera procedura informatica e che permetta al visitatore di visualizzare i prodotti presenti in magazzino e al responsabile/amministratore di visualizzare i clienti iscritti al sito. Realizzare la procedura in PHP, con l’utilizzo anche di MySQL, secondo lo schema: un’area con l’archivio dei prodotti che possono essere visualizzati senza l’utilizzo delle credenziali di accesso; un’area protetta dove si gestiscono i dati dei clienti (inserimento, modifica, eliminazione) alla quale possono accedere unicamente gli amministratori; un’area alla quale possono accedere solo i clienti registrati al sito dove possono acquistare i prodotti. Tutte le procedure devono essere inserite all’interno di un sito web già realizzato. ANALISI DI MASSIMA Il programma richiede di creare un sito e-commerce dove i clienti potranno registrarsi, visualizzare tutti i prodotti del negozio e acquistarli direttamente online. Ai clienti che acquisteranno più di 150 euro di merce gli verrà applicato uno sconto del 10 % Gli amministratori, invece, potranno gestire tutti i clienti e i prodotti direttamente da un’area protetta. 3 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ANALISI DI MINIMA Sono state realizzate 16 pagine in PHP per la parte riservata agli amministratori: prodotti_1.php prodotti_2.php prodotti_a1.php prodotti_a2.php prodotti_m1.php prodotti_m2.php prodotti_m3.php prodotti_q1.php utenti_1.php utenti_2.php utenti_a1.php utenti_a2.php utenti_m1.php utenti_m2.php utenti_m3.php utenti_q1.php Sono state realizzate 7 pagine PHP per la parte riservata ai clienti: checklogin.php elabora_form.php loghi_1.php logout.php logout2.php paginacliente.php paginacliente2.php Sono state realizzate 8 pagine PHP per la parte riservata alle query: query1.php query2.php query3.php query4.php query5.php query6.php query7.php query8.php È stato poi realizzato il database mediante il linguaggio di programmazione MySQL, con l’utilizzo del programma EasyPHP, che permette di collegarsi al supporto con il quale viene creato il database nominato “my_dfranceschetti”. Al suo interno sono stare realizzate due tabelle, prodotti e utenti, compilate in tutti i rispettivi campi. Le tabelle verranno poi collegate alle pagine di consultazione, inserimento e modifica che potranno essere utilizzate solo dagli amministratori del sito. Le tabelle utenti e prodotti sono collegate alla tabella acquisti vendite dato che è presente un collegamento molti a molti perché un utente può acquistare più prodotti e un prodotto può essere acquistato da più utenti. 4 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Login amministratori: Per questa sezione del sito sono state create due caselle di input dove l’amministratore dovrà inserire l’username e la password già prestabilite. Successivamente, nella seconda pagina, viene verificato che l’inserimento corrisponda alle credenziali stabilite dal programma. Se ciò è verificato allora l’amministratore verrà indirizzato alla relativa pagina dove potrà consultare, modificare o cancellare i dati relativi ai prodotti o ai clienti; in caso contrario verrà reindirizzato alla pagina di login. In questo applicativo è presente il concetto di integrità referenziale: L’ integrità referenziale è una proprietà dei dati che, se soddisfatta, richede che ogni valore di un attributo (colonna) di una relazione (tabella) esista come valore di un altro attributo in un'altra (o nella stessa) relazione. Nei database relazionali, perché sia rispettata l'integrità referenziale, ogni campo in una tabella che sia stato dichiarato come foreign key può contenere solo valori della chiave primaria o chiave di una tabella "madre". Per esempio, cancellare un record che contiene un valore a cui fa riferimento una foreign key di un'altra tabella violerebbe l'integrità relazionale. 5 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Registrazione utente: Per la registrazione è stato utilizzato un programma di inserimento all’interno della tabella del database. Innanzitutto è stato realizzato un modulo form dove l’utente potrà inserire i suoi dati; successivamente i dati vengono inseriti all’interno della rispettiva tabella nel database attraverso i comandi SQL: $sqlinter = “insert utenti”; $sqlinter = “(nome, cognome, indirizzo, mail, username, password)”; $sqlinter = “values”; $sqlinter = “('$name', '$cognome', '$indirizzo', '$email', '$user', '$pass')”. Login utente: In questa sezione il cliente appena registrato può accedere al carrello per acquistare i prodotti. Inizialmente deve inserire l’username e la password, scelti durante la propria registrazione, in un modulo form. Nella pagina successiva verrà controllato se esiste all’interno della tabella nel database un record con tali dati attraverso l’istruzione in SQL $sql = “SELECT * FROM $tbl_name WHERE username='$username' and password='$password'”; All’interno di questa procedura è presente una variabile $count, la quale viene utilizzata per verificare o meno l’esistenza di tali dati. Se la variabile assume valore 1 significa che il record è stato trovato e il cliente può accedere. In caso contrario verrà reindirizzato alla pagina principale del sito. Carrello: Questa è la sezione dove i clienti possono acquistare la merce presente in magazzino. Innanzitutto devono scegliere quale prodotto comprare attraverso un modulo di selezione (radio); il passaggio successivo è la conferma. Dopo aver confermato apparirà a video un messaggio, il quale notificherà al cliente l’avvenuto acquisto. Una volta che l’acquisto sarà effettuato verrà scalata la quantità acquistata dalla rimanenza in magazzino. In questo progetto è presente anche una sezione QUERY nella quale né sono presenti alcune, come per esempio: - Visualizzare tutti i dati dei prodotti presenti in magazzino - Visualizzare tutti i dati dei prodotti il cui prezzo supera 150€ - Visualizzare i dati del prodotto con il prezzo massimo - Dopo aver calcolato la somma dei prezzi di tutti i prodotti, visualizzare la media 6 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi MODELLO E/R: utenti: prodotti (1;1) email password nome cognome telefono (1;1) (1;1) acquistivendite codpro codacq quaacc_new (1;1) (1;1) ordiniutenti codacq email (1;1) Creazione database my_dfranceschetti : Database: `my_dfranceschetti` -- --- Struttura della tabella `prodotti` -CREATE TABLE IF NOT EXISTS `prodotti` ( `codpro` char(6) NOT NULL, `nompro` varchar(20) NOT NULL, `preuni` decimal(10,2) NOT NULL, `quanti` int(3) NOT NULL, PRIMARY KEY (`codpro`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dump dei dati per la tabella `prodotti` 7 codpro nompro preuni quanti Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi -INSERT INTO `prodotti` (`codpro`, `nompro`, `preuni`, `quanti`) VALUES ('1', 'Samsung GT', 16.90, 96), ('10', 'Acer Aspire Predator', 799.00, 80), ('11', 'Medion 4FE', 139.00, 93), ('12', 'Samsung T22A300', 189.00, 99), ('13', 'Philips 26PFL3405H', 1200.00, 100), ('14', 'Samsung UE22ES5410', 999.00, 96), ('2', 'NGM Billy Turquoise', 59.00, 99), ('3', 'Nokia C2-06', 105.00, 99), ('4', 'Blackberry Curve ', 2000.00, 100), ('5', 'Apple Iphone 4 white', 599.00, 100), ('6', 'Hp Pavilion DVD6', 579.00, 100), ('7', 'Sony Vaio', 699.00, 100), ('8', 'Asus N555L', 1249.00, 100), ('9', 'Hp Pavilion P6', 449.00, 100); -- ---------------------------------------------------------- Struttura della tabella `utenti` -CREATE TABLE IF NOT EXISTS `utenti` ( `password` varchar(12) NOT NULL, `name` varchar(30) NOT NULL, `cognome` varchar(30) NOT NULL, `indirizzo` varchar(200) NOT NULL, `email` varchar(100) NOT NULL, `telefono` varchar(10) DEFAULT NULL, PRIMARY KEY (`email`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dump dei dati per la tabella `utenti` -INSERT INTO `utenti` (`password`, `name`, `cognome`, `indirizzo`, `email`, `telefono`) VALUES ('dario', 'dario', 'franceschetti', 'Via Bagnolo 5', '[email protected]', '0371761523'); --- Struttura della tabella `acquistivendite` -CREATE TABLE IF NOT EXISTS `acquistivendite` ( `codacq` int(11) NOT NULL AUTO_INCREMENT, `quaacc_new` int(3) NOT NULL, 8 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi `email` varchar(100) NOT NULL, `codpro` char(6) NOT NULL, `prezzo` varchar(20) NOT NULL, PRIMARY KEY (`codacq`), FOREIGN KEY `email` REFERENCES utenti (`email`), FOREIGN KEY `codpro` REFERENCES prodotti (`codpro`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; --- Dump dei dati per la tabella `acquistivendite` -INSERT INTO `acquistivendite` (`codacq`, `quaacc_new`, `email`, `codpro`, `prezzo`) VALUES (3, 1, '[email protected]', '10', '719.1'), (4, 11, '[email protected]', '10', '7910.1'); -- -------------------------------------------------------- 9 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi MANUALE D’USO PER L’INSTALLAZIONE DI EASYPHP Sul proprio computer è innanzitutto necessario avere installato un web server, ad esempio EasyPHP, scaricabile dal sito ufficiale all’indirizzo http://www.easyphp.org/download.php. Una volta che sarà stato scaricato ed installato verrà creata in modo automatico, nel disco locale del computer, all’interno della cartella di installazione del programma, una sottocartella “www”. Per testare il proprio lavoro è necessario copiare tutti i file all’interno di questa cartella, avviare il programma facendo attenzione che il server Apache si sia avviato correttamente e, infine, andare all’indirizzo “127.0.0.1” con il proprio browser. Una volta fatto questo sarà necessario cliccare sul nome della cartella “www” e automaticamente verrete indirizzati sulla pagina principale del vostro lavoro. USER GUIDE FOR INSTALLATION OF EASYPHP On your computer you must first have installed a web server, such as EasyPHP downloaded from the official website at http://www.easyphp.org/download.php. Once it has been downloaded and installed will be created automatically, in the computer's local disk, within the installation folder of the program, a subfolder www. To test your work you must copy all the files inside this folder, start the program, making sure that the Apache server has started correctly and, finally, go to "127.0.0.1" with your browser. Once this is done you need to click on the folder name "www" and you will be directed automatically to the main page of your work. Creazione di un Database MySql su Altervista Collegarsi all’indirizzo http://www.altervista.org/ e inserire le proprie credenziali. 10 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi L’apertura è sull’etichetta Io. Bisogna cliccare sull’etichetta AlterSito Cliccare poi il sottomenu Risorse & Upgrade. Compare la pagina con l’etichetta Spazio. 11 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Cliccare sulla terza etichetta: Database. Appare la pagina di attivazione e scelta Classe per il Database: spuntare Classe 3 e cliccare Conferma Modifiche Si aprirà un messaggio di conferma di attivazione (come nella Figura sotto). Clicca Conferma Operazione. 12 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi A questo punto il Database MySql è stato creato e attivato. In basso vi sono i dati per accedere al Database: annotali e conservali. Clicca in alto a destra del menu principale Esci, per uscire da Altervista. Chiudi il sito di Altervista. Il nome del database creato sarà: my_nomepropriosito 13 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Manuale di utilizzo applicativo Nella pagina home sono presenti le istruzioni pricipali per l’utilizzo dell’applicativo. Nella pagina i nostri prodotti sono presenti, suddivisi in tre categorie come si può vedere a lato, i prodotti in vendita 14 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Nella pagina registrati sono preseti dei moduli da compilare con i propri dati personali, in quanto per acquistare bisogna essere registrati Nella pagina Login cliente il cliente deve immettere le proprie credenziali create nella pagina Registrati e dopodiché gli apparirà la pagina con l’enco dei prodotti in vendita 15 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Nella pagina Login amministratore, riservata solamente a loro, dovranno accedere inserendo come username e come password : admin Dopo aver accesso con le credenziali corrette l’amministratore visualizzerà questa pagina dove potrà controllare, modificare, inserire e cancellare gli utenti registrati, i prodotti in magazzino, e controllare le relazioni tra le tabelle utenti e prodotti 16 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Nella pagina contatti sono presenti dei moduli da compilare se volete spedirci delle email e l’indirizzo della sede Nella pagina query sono invece presenti delle interrogazioni che vengono effettuate al database 17 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi VARIABILI UTILIZZATE Qui di seguito è riportata una tabella contenente tutte le variabili utilizzate nel sito. NOME PAGINA FUNZIONE $host checklogin.php / elabora_form.php Identifica il server a cui ci si collega $username checklogin.php / elabora_form.php Identifica il nome dell’utente $password checklogin.php / elabora_form.php Identifica la password del server (se esiste) $db_name checklogin.php Indica il nome del database $tbl_name checklogin.php Indica il nome della tabella $sql checklogin.php Gestisce i comandi in SQL $result checklogin.php Estrae il risultato dell’interrogazione al database $count checklogin.php Verifica se è stato trovato o meno un record $name elabora_form.php / utenti_2.php Indica il nome dell’utente $cognome elabora_form.php / utenti_2.php Indica il cognome dell’utente $indirizzo elabora_form.php / utenti_2.php Indica l’indirizzo dell’utente $email elabora_form.php / utenti_2.php Indica la mail dell’utente $user elabora_form.php Indica l’username dell’utente $password elabora_form.php / utenti_2.php Indica la password dell’utente $db elabora_form.php / paginacliente.php / prodotti_2.php / prodotti_a1.php / prodotti_a2.php / prodotti_m1.php / prodotti_m2.php / prodotti_m3.php / prodotti_q1.php / utenti2.php / utentia1.php / utenti_a2.php / utenti_m1.php / utenti_m2.php / utenti_m3.php / utenti_q1.php Identifica la connessione al database $sqlinter elabora_form.php / paginacliente.php / prodotti_2.php / prodotti_a1.php / prodotti_a2.php / prodotti_m1.php / prodotti_m2.php / prodotti_m3.php / prodotti_q1.php / utenti2.php / utentia1.php / utenti_a2.php / 18 Gestisce i comandi in SQL Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi utenti_m1.php / utenti_m2.php / utenti_m3.php / utenti_q1.php $num elabora_form.php / paginacliente.php / prodotti_2.php / prodotti_a1.php / prodotti_a2.php / prodotti_m1.php / prodotti_m2.php / prodotti_m3.php / prodotti_q1.php / utenti2.php / utentia1.php / utenti_a2.php / utenti_m1.php / utenti_m2.php / utenti_m3.php / utenti_q1.php Indica i record estratti $user loghi_1.php Indica l’username dell’amministratore $pass loghi_1.php Indica la password dell’amministatore $res paginacliente.php / prodotti_a1.php / prodotti_a2.php / prodotti_m1.php / prodotti_m2.php / prootti_q1.php / utenti_a1.php / utenti_a2.php / utenti_m1.php / utenti_m2.php / utenti_q1.php Esecuzione del comando di interrogazione al database $i paginacliente.php / prodotti_a1.php / prodotti_m1.php / prodotti_q1.php / utenti_a1.php / utenti_m1.php / utenti_q1.php Visualizzazione dei record estratti $codpro paginacliente.php / prodotti_2.php / prodotti_a1.php / prodotti_m1.php 7 prodotti_q1.php Indica il codice del prodotto $nompro paginacliente. php / prodotti_2.php / prodotti_a1.php / prodotti_m1.php / prodotti_q1.php Indica il nome del prodotto $preuni paginacliente. php / prodotti_2.php / prodotti_a1.php / prodotti_m1.php 7 prodotti_q1.php Indica il prezzo unitario del prodotto $quanti paginacliente. php / prodotti_2.php / prodotti_a1.php / prodotti_m1.php 7 prodotti_q1.php Indica la quantità del prodotto $selezi paginacliente2.php / prodotti_a2.php / prodotti_m2.php / utenti_a2.php / utenti_m2.php Controlla che l’utente abbia selezionato un record $mysql_db_query prodotti_2.php / prodotti_m3.php 19 Esegue una query SQL nel database Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $conn prodotti_m2.php / utenti_m1.php / utenti_m2.php / utenti_m3.php / utenti_q1.php Effettua la connessione al database $codpro_old prodotti_m2.php / utenti_m2.php Indica il vecchio codice del prodotto $nompro_old prodotti_m2.php / utenti_m2.php Indica il vecchio nome del prodotto $preuni_old prodotti_m2.php / utenti_m2.php Indica il vecchio prezzo unitario del prodotto $quanti_old prodotti_m2.php / utenti_m2.php Indica la vecchia quantità del prodotto $codpro_new prodotti_m3.php Indica il nuovo codice del prodotto $nompro_new prodotti_m3.php Indica il nuovo nome del prodotto $preuni_new prodotti_m3.php Indica il nuovo prezzo unitario del prodotto $quanti_new prodotti_m3.php Indica la nuova quantità del prodotto $codacq prodotti_m3.php Indica il codice di acquisto del prodotto $con utenti_a1.php Effettua la connessione al database $ID utenti_a1.php / utenti_m3.php Identifica il codice che identifica l’utente $username_new utenti_m3.php Indica il nuovo username dell’utente $password_new utenti_m3.php Indica la nuova password dell’utente $name_new utenti_m3.php Indica il nuovo nome dell’utente $cognome_new utenti_m3.php Indica il nuovo cognome dell’utente $email_new utenti_m3.php Indica la nuova mail dell’utente $indirizzo_new utenti_m3.php Indica il nuovo indirizzo dell’utente 20 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi 21 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi 22 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi 23 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi LISTING DEL PROGRAMMA query1.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT * FROM prodotti"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th><th>Prezzo unitario</th><th>Quantit&agrave;</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td> <td><center>$riga[2]</td> <td><center>$riga[3]</td></tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> 24 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi query2.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT * FROM prodotti WHERE preuni>150.00"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th><th>Prezzo unitario</th><th>Quantit&agrave;</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td> <td><center>$riga[2]</td> <td><center>$riga[3]</td></tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> 25 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi query3.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT codpro, nompro FROM prodotti WHERE nompro LIKE 'S%'"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td></tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> 26 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi query4.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT codpro, nompro FROM prodotti WHERE preuni IS NULL"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td></tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> 27 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi query5.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT * FROM prodotti WHERE preuni=( SELECT MAX(preuni) FROM prodotti )"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th><th>Prezzo unitario</th><th>Quantit&agrave;</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td> <td><center>$riga[2]</td> <td><center>$riga[3]</td></tr></font>"; $riga=mysql_fetch_array($query); } 28 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo"</table>"; } mysql_close($conn); ?> query6.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT * FROM prodotti WHERE preuni=( SELECT MIN(preuni) FROM prodotti )"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th><th>Prezzo unitario</th><th>Quantit&agrave;</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td> <td><center>$riga[2]</td> 29 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td><center>$riga[3]</td></tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> query7.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT AVG(preuni) FROM prodotti"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Prezzo medio</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> </tr></font>"; $riga=mysql_fetch_array($query); } echo"</table>"; 30 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi } mysql_close($conn); ?> query8.php <?php $host="127.0.0.1"; $user="root"; $pass=""; $conn=@mysql_connect($host,$user,$pass) or die ("<p align='center'><b><font color='82C0FF'>Errore la connessione non ha avuto successo!</font></b></p>"); $db=@mysql_select_db("my_dfranceschetti") or die ("<p align='center'><b><font color='82C0FF'>Errore il db non &egrave; stato aperto!</font></b></p>"); $str="SELECT codpro, nompro FROM prodotti WHERE preuni BETWEEN 150 AND 700"; $query=mysql_query($str) or die("<p align='center'><b><font color='82C0FF'>Query fallita!</font></b></p>"); $riga=mysql_fetch_array($query); if(!$riga) echo"<p align='center'><b><font color='82C0FF'>Nessuna tupla!</font></b></p>"; else { echo"<table border=1 align='center' cellspacing='5' cellpadding='12'><font color='82C0FF'><tr><th>Codice prodotto</th><th>Nome prodotto</th></tr></font>"; while($riga) { echo"<font color='82C0FF'><tr><td><center>$riga[0]</td> <td><center>$riga[1]</td></tr></font>"; 31 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $riga=mysql_fetch_array($query); } echo"</table>"; } mysql_close($conn); ?> checklogin.php <?php $host="localhost"; $username="root"; $password=""; $db_name="my_dfranceschetti"; $tbl_name="utenti"; mysql_connect("$host", "$username", "$password")or die("IMPOSSIBILE CONNETTERSI AL SERVER MYSQL"); mysql_select_db("$db_name")or die("IMPOSSIBILE APRIRE IL DATABASE"); $username=$_POST['username']; $password=$_POST['password']; $username = stripslashes($username); $password = stripslashes($password); $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'"; $result=mysql_query($sql); 32 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $count=mysql_num_rows($result); if($count==1) { session_start("$username"); session_start("$password"); header("location:paginacliente.php"); } else { echo "Username e Password errate!"; } ?> 33 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi elabora_form.php <?php $name=$_POST['nome']; $cognome=$_POST['cognome']; $indirizzo=$_POST['indirizzo']; $email=$_POST['mail']; $user=$_POST['user']; $pass=$_POST['pass']; $hostname="localhost"; $username="root"; $password=""; $db=mysql_connect($hostname, $username, $password); $sqlinter = "insert utenti"; $sqlinter .= "(nome, cognome, indirizzo, mail, username, password)"; $sqlinter .= " values "; $sqlinter .= "('$name', '$cognome', '$indirizzo', '$email', '$user', '$pass')"; mysql_db_query("my_dfranceschetti ", $sqlinter); $num=mysql_affected_rows(); if ($num>0) echo "<h4>Registrazione avvenuta correttamente!</h4><p>"; else echo "<h4>Nessuna registrazione!</h4><p>"; mysql_close($db); ?> 34 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi loghi_1.php <?php $user=$_POST['user']; $pass=$_POST['pass']; if ($user=='admin' && $pass=='admin') { @header("location: indexamm.html"); } else @header("location: amm.html"); ?> logout.php <?php if(isset($_GET['logout'])) { session_start(); @session_destroy(); $_SESSION=array(); @header("location: indexamm.html"); } else { @header("location: riservato.html"); } ?> logout2.php <?php if(isset($_GET['logout'])) { session_start(); @session_destro y(); $_SESSION=arra y(); @header("location: paginacliente.php"); } else { @header("location: index.html"); } ?> 35 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi paginacliente.php <?php $db=mysql_connect("localhost","root"); $sqlinterr = "select * from prodotti "; $db_selected = mysql_select_db('my_dfranceschetti ', $db); $res=mysql_query($sqlinterr); $num=mysql_num_rows($res); echo "<center><table border='0' align='center' cellspacing='6' cellpadding='4'> <tr> <td><center><u><b>Selezione</u></b></center></td> <td></td> <td><center><u><b>Codice prodotto</u></b></center></td> <td></td> <td><center><u><b>Nome prodotto</u></b></center></td> <td></td> <td><center><u><b>Prezzo unitario</u></b></center></td> <td></td> <td><center><u><b>Quantit&agrave;</u></b></center></td> <td></td> </tr> <tr> </tr>"; for($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); echo "<tr> <td> <center></center> <input type='radio' name='selezi' value='$nompro'></td> <td></td> <td><center>$codpro</center></td> <td></td> <td><center>$nompro</center></td> <td></td> <td><center>$preuni</center></td> <td></td> <td><center>$quanti</center></td> <td></td> </tr><tr></tr>"; } echo "</table></center>"; echo "<p><center><input type='submit' value='Acquista'></center>"; mysql_close($db); ?> 36 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi 37 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi paginacliente2.php <?php $selezi=$_POST['selezi']; if($selezi) { echo"<h4><center>Avete scelto di acquistare: <br>$selezi</h4></center>"; echo"<h3><center>Complimenti per la vostra scelta!</center></h3>"; echo"<h3><center>Vi arriver&agrave; a casa entro 3 giorni lavorativi</center></h3>"; } else echo"<h3><center>Non &egrave; stato selezionato alcun prodotto</center></h3>"; ?> prodotti_1.php <?php echo "<center> <table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>Codice prodotto</font></th> <td align='center'><input name='codpro'></td> </tr> <tr> <th><font color='82C0FF'>Nome prodotto</font></th> <td align='center'><input name='nompro'></td> </tr> <tr> <th><font color='82C0FF'>Prezzo unitario</font></th> <td align='center'><input name='preuni'></td> </tr> <tr> <th><font color='82C0FF'>Quantit&agrave;</font></th> <td align='center'><input name='quanti'></td> </tr> </table></center>"; echo "<br><br><br>"; 38 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> 39 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td align='center'><input type='submit' value='Invia'></td><td align='center'><input type='reset' value='Cancella'></td> </tr> </table></center>"; ?> prodotti_2.php <?php $codpro=$_POST['codpro']; $nompro=$_POST['nompro']; $preuni=$_POST['preuni']; $quanti=$_POST['quanti']; $db=mysql_connect("localhost","root"); $sqlinter = "insert prodotti"; $sqlinter .= "(codpro, nompro, preuni, quanti)"; $sqlinter .= " values "; $sqlinter .= "('$codpro', '$nompro', '$preuni', '$quanti')"; mysql_db_query("my_dfranceschetti", $sqlinter); $num=mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Nuovo record inserito correttamente.<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>ERRORE!!! Record non inserito <br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; mysql_close($db); ?> 40 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi prodotti_a1.php <?php $db=mysql_connect("localhost","root"); $sqlinterr ="select * from prodotti "; $res=mysql_db_query("my_dfranceschetti",$sqlinterr); $num=mysql_num_rows($res); echo "<table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>Selezione</font></th> <th><font color='82C0FF'>Codice prodotto</font></th> <th><font color='82C0FF'>Nome prodotto</font></th> <th><font color='82C0FF'>Prezzo unitario</font></th> <th><font color='82C0FF'>Quantit&agrave;</font></th> </tr>"; for ($i=0; $i<$num; $i++) { codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); echo "<tr> <td><input type='radio' name='selezi' value='$codpro'></td>"; echo " <td><font color='82C0FF'>$codpro</font></td> <td><font color='82C0FF'>$nompro</font></td> <td><font color='82C0FF'>$preuni</font></td> <td><font color='82C0FF'>$quanti</font></td> </tr>"; } echo "</table>"; echo "<br><br><br>"; echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> <td align='center'><input type='submit' value='Procedi alla cancellazione'></td> </tr> </table></center>"; mysql_close($db); 41 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ?> 42 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi prodotti_a2.php <?php $selezi=$_POST['selezi']; if ($selezi) { $db=mysql_connect("localhost", "root"); $sqlinterr="delete from prodotti where"; $sqlinterr .=" codpro='$selezi'"; $res=mysql_db_query("my_dfranceschetti", $sqlinterr); $num=mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Record cancellato<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>Record non cancellato!!!<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; mysql_close($db); } else echo "<p align='center'><b><font color='82C0FF'>Non &egrave; stato selezionato nessun record<br><br> Per tornare indietro <a href='prodotti_a1.php'>cliccare qui</a></b></p>"; ?> 43 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi prodotti_m1.php <?php $db=mysql_connect("localhost","root"); $sqlinterr = "select * from prodotti"; $res=mysql_db_query("my_dfranceschetti",$sqlinterr); $num=mysql_num_rows($res); echo "<table border='1' align='center' cellspacing='5' cellpadding='12'>"; echo "<tr> <th><font color='82C0FF'>Selezione</font></th> <th><font color='82C0FF'>Codice prodotto</font></th> <th><font color='82C0FF'>Nome prodotto</font></th> <th><font color='82C0FF'>Prezzo unitario</font></th> <th><font color='82C0FF'>Quantit&agrave;</font></th> </tr>"; for ($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); echo "<tr> <td><input type='radio' name='selezi' value='$codpro'></td> <td><font color='82C0FF'>$codpro</font></td> <td><font color='82C0FF'>$nompro</font></td> <td><font color='82C0FF'>$preuni</font></td> <td><font color='82C0FF'>$quanti</font></td> </tr>"; } echo "</table>"; echo "<br><br><br>"; echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> <td align='center'><input type='submit' value='Procedi alla modifica'></td> </tr> </table></center>"; mysql_close($db); 44 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ?> 45 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi prodotti_m2.php <?php $selezi=$_POST['selezi']; if ($selezi) { $conn=mysql_connect("localhost","root"); $db=mysql_select_db("my_dfranceschetti") or die("IMPOSSIBILE APRIRE IL DATABASE"); $sqlinterr = "select * from prodotti "; $sqlinterr.= "where prodotti.codpro='$selezi'"; $res=mysql_query($sqlinterr); $codpro_old=mysql_result($res,0,"quanti"); $nompro_old=mysql_result($res,0,"nompro"); $preuni_old=mysql_result($res,0,"preuni"); $quanti_old=mysql_result($res,0,"quanti"); echo "<center><form action='prodotti_m3.php' method='POST'>"; echo "<font color='82C0FF'><b>Codice prodotto<br><input name='codpro_new' value='$codpro_old'><br><br>"; echo "<font color='82C0FF'><b>Nome prodotto<br><input name='nompro_new' value='$nompro_old'><br><br>"; echo "<font color='82C0FF'><b>Prezzo unitario<br><input name='preuni_new' value='$preuni_old'><br><br>"; echo "<font color='82C0FF'><b>Quantit&agrave;<br><input name='quanti_new' value='$quanti_old'><br><br>"; echo "<input type='hidden' name='codpro' value='$selezi'>"; echo "<br><br><br><input type='submit' value='Modifica'> "; echo "<input type='reset' value='Cancella'>"; echo "</form></center>"; mysql_close($conn); } 46 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi else 47 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<p align='center'><b><font color='82C0FF'>Non &egrave; stato selezionato nessun utente<br><br> Per tornare indietro <a href='prodotti_m1.php'>cliccare qui</a></b></p>"; ?> prodotti_m3.php <?php $codpro_new=$_POST['codpro_new']; $nompro_new=$_POST['nompro_new']; $preuni_new=$_POST['preuni_new']; $quanti_new=$_POST['quanti_new']; $codacq=$_POST['codacq']; $db=mysql_connect("localhost","root"); $sqlinterr = "update prodotti set "; $sqlinterr.=" codpro='$codpro_new',"; $sqlinterr.=" nompro='$nompro_new',"; $sqlinterr.=" preuni='$preuni_new',"; $sqlinterr.=" quanti='$quanti_new' "; $sqlinterr.= "where codacq='$codacq'"; mysql_db_query("my_dfranceschetti",$sqlinterr); $num = mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Record modificato<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>ERRORE!!! Record non modificato<br><br> Per tornare indietro <a href='prodotti_m1.php'>cliccare qui</a></b></p>"; mysql_close($db); ?> 48 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi prodotti_q1.php <?php $db=mysql_connect("localhost","root"); $sqlinterr = "select * from prodotti "; $res=mysql_db_query("my_dfranceschetti",$sqlinterr); $res=mysql_query($sqlinterr); $num=mysql_num_rows($res); echo "<center> <table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>Codice prodotto</font></th> <th><font color='82C0FF'>Nome prodotto</font></th> <th><font color='82C0FF'>Prezzo unitario</font></th> <th><font color='82C0FF'>Quantit&agrave;</font></th> </tr>"; for ($i=0;$i<$num;$i++) { $codpro=mysql_result($res,$i,"codpro"); $nompro=mysql_result($res,$i,"nompro"); $preuni=mysql_result($res,$i,"preuni"); $quanti=mysql_result($res,$i,"quanti"); echo "<tr> <td><font color='82C0FF'>$codpro</font></td> <td><font color='82C0FF'>$nompro</font></td> <td><font color='82C0FF'>$preuni</font></td> <td><font color='82C0FF'>$quanti</font></td> </tr>"; } echo "</center></table>"; mysql_close($db); ?> 49 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi utenti_1.php <?php echo "<center> <table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>Nome cliente</font></th> <td align='center'><input name='name'></td> </tr> <tr> <th><font color='82C0FF'>Cognome cliente</font></th> <td align='center'><input name='cognome'></td> </tr> <tr> <th><font color='82C0FF'>Via cliente</font></th> <td align='center'><input name='indirizzo'></td> </tr> <tr> <th><font color='82C0FF'>E-mail cliente</font></th> <td align='center'><input name='email'></td> </tr> <tr> <th><font color='82C0FF'>Username</font></th> <td align='center'><input name='username'></td> </tr> <tr> <th><font color='82C0FF'>Password</font></th> <td align='center'><input name='password'></td> </tr> </table></center>"; echo "<br><br><br>"; echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> <td align='center'><input type='submit' value='Invia'></td><td align='center'><input type='reset' value='Cancella'></td> </tr> </table></center>"; 50 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ?> 51 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi utenti_2.php <?php $name=$_POST['name']; $cognome=$_POST['cognome']; $email=$_POST['email']; $indirizzo=$_POST['indirizzo']; $username=$_POST['username']; $password=$_POST['password']; $con=mysql_connect("localhost","root",""); $db=mysql_select_db("my_dfranceschetti ") or die("IMPOSSIBILE APRIRE IL DATABASE"); $sqlinter = "insert utenti"; $sqlinter .= "(username, password, nome, cognome, indirizzo, mail)"; $sqlinter .= " values "; $sqlinter .= "('$username', '$password', '$name', '$cognome', '$indirizzo','$email')"; mysql_query($sqlinter); $num=mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Nuovo record inserito correttamente.<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>ERRORE!!! Record non inserito <br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; mysql_close($con); ?> 52 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi utenti_a1.php <?php $db=mysql_connect("localhost","root"); $sqlinterr ="select * from utenti "; $res=mysql_db_query("my_dfranceschetti",$sqlinterr); $num=mysql_num_rows($res); echo "<table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>Selezione</font></th> <th><font color='82C0FF'>ID</font></th> <th><font color='82C0FF'>Username</font></th> <th><font color='82C0FF'>Password</font></th> <th><font color='82C0FF'>Nome cliente</font></th> <th><font color='82C0FF'>Cognome cliente</font></th> <th><font color='82C0FF'>Indirizzo cliente</font></th> <th><font color='82C0FF'>Email cliente</font></th> </tr>"; for ($i=0; $i<$num; $i++) { $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password"); $name=mysql_result($res,$i,"nome"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"mail"); $indirizzo=mysql_result($res,$i,"indirizzo"); echo "<tr> <td><input type='radio' name='selezi' value='$ID'></td>"; echo " <td><font color='82C0FF'>$ID</font></td> <td><font color='82C0FF'>$username</font></td> <td><font color='82C0FF'>$password</font></td> <td><font color='82C0FF'>$name</font></td> <td><font color='82C0FF'>$cognome</font></td> <td><font color='82C0FF'>$indirizzo</font></td> <td><font color='82C0FF'>$email</font></td> </tr>"; } echo "</table>"; 53 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<br><br><br>"; 54 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> <td align='center'><input type='submit' value='Procedi alla cancellazione'></td> </tr> </table></center>"; mysql_close($db); ?> utenti_a2.php <?php $selezi=$_POST['selezi']; if ($selezi) { $db=mysql_connect("localhost", "root"); $sqlinterr="delete from utenti where"; $sqlinterr .=" ID='$selezi'"; $res=mysql_db_query("my_dfranceschetti", $sqlinterr); $num=mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Record cancellato<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>Record non cancellato!!!<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; mysql_close($db); } else echo "<p align='center'><b><font color='82C0FF'>Non &egrave; stato selezionato nessun record<br><br> Per tornare indietro <a href='utenti_a1.php'>cliccare qui</a></b></p>"; 55 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ?> 56 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi utenti_m1.php <?php $conn=mysql_connect("localhost","root"); $db=mysql_select_db("my_dfranceschetti"); $sqlinterr = "select * from utenti"; $res=mysql_query($sqlinterr); $num=mysql_num_rows($res); echo "<table border='1' align='center' cellspacing='5' cellpadding='12'>"; echo "<tr> <th><font color='82C0FF'>Selezione</font></th> <th><font color='82C0FF'>ID</font></th> <th><font color='82C0FF'>Username</font></th> <th><font color='82C0FF'>Password</font></th> <th><font color='82C0FF'>Nome</font></th> <th><font color='82C0FF'>Cognome</font></th> <th><font color='82C0FF'>Email</font></th> <th><font color='82C0FF'>Indirizzo</font></th> </tr>"; for ($i=0;$i<$num;$i++) { $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password"); $name=mysql_result($res,$i,"nome"); $cognome=mysql_result($res,$i,"cognome"); $email=mysql_result($res,$i,"mail"); $indirizzo=mysql_result($res,$i,"indirizzo"); echo "<tr> <td><input type='radio' name='selezi' value='$ID'></td> <td><font color='82C0FF'>$ID</font></td> <td><font color='82C0FF'>$username</font></td> <td><font color='82C0FF'>$password</font></td> <td><font color='82C0FF'>$name</font></td> <td><font color='82C0FF'>$cognome</font></td> <td><font color='82C0FF'>$email</font></td> <td><font color='82C0FF'>$indirizzo</font></td> </tr>"; } 57 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "</table>"; echo "<br><br><br>"; echo "<center><table border='0' align='center' cellspacing='5' cellpadding='12'> <tr> <td align='center'><input type='submit' value='Procedi alla modifica'></td> </tr> </table></center>"; mysql_close($conn); ?> utenti_m2.php <?php $selezi=$_POST['selezi']; if ($selezi) { $conn=mysql_connect("localhost","root"); $db=mysql_select_db("my_dfranceschetti"); $sqlinterr = "select * from utenti "; $sqlinterr.= "where utenti.ID='$selezi'"; $res=mysql_query($sqlinterr); $ID_old=mysql_result($res,0,"ID"); $username_old=mysql_result($res,0,"username"); $password_old=mysql_result($res,0,"password"); $name_old=mysql_result($res,0,"nome"); $cognome_old=mysql_result($res,0,"cognome"); $email_old=mysql_result($res,0,"mail"); $indirizzo_old=mysql_result($res,0,"indirizzo"); echo "<center><form action='utenti_m3.php' method='POST'>"; echo "<font color='82C0FF'><b>Username</b></font><br><input name='username_new' value='$username_old'><br><br>"; echo "<font color='82C0FF'><b>Password</b></font><br><input name='password_new' value='$password_old'><br><br>"; 58 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<font color='82C0FF'><b>Nome cliente</b></font><br><input name='name_new' value='$name_old'><br><br>"; 59 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi echo "<font color='82C0FF'><b>Cognome cliente</b></font><br><input name='cognome_new' value='$cognome_old'><br><br>"; echo "<font color='82C0FF'><b>Email</b></font><br><input name='email_new' value='$email_old'><br><br>"; echo "<font color='82C0FF'><b>Indirizzo</b></font><br><input name='indirizzo_new' value='$indirizzo_old'><br><br>"; echo "<input type='hidden' name='ID' value='$selezi'>"; echo "<br><br><br><input type='submit' value='Modifica'> "; echo "<input type='reset' value='Cancella'>"; echo "</form></center>"; mysql_close($conn); } else echo "<p align='center'><b><font color='82C0FF'>Non &egrave; stato selezionato nessun utente<br><br> Per tornare indietro <a href='utenti_m1.php'>cliccare qui</a></b></p>"; ?> utenti_m3.php <?php $username_new=$_POST['username_new']; $password_new=$_POST['password_new']; $name_new=$_POST['name_new']; $cognome_new=$_POST['cognome_new']; $email_new=$_POST['email_new']; $indirizzo_new=$_POST['indirizzo_new']; $ID=$_POST['ID']; $conn=mysql_connect("localhost","root"); $db=mysql_select_db("my_dfranceschetti"); $sqlinterr = "update utenti set "; $sqlinterr.=" username='$username_new' "; $sqlinterr.=" ,password='$password_new' "; $sqlinterr.=" ,nome='$name_new' "; $sqlinterr.=" ,cognome='$cognome_new' "; 60 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $sqlinterr.=" ,mail='$email_new' "; 61 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $sqlinterr.=" ,indirizzo='$indirizzo_new' "; $sqlinterr.= "where ID='$ID'"; mysql_query($sqlinterr); $num = mysql_affected_rows(); if ($num>0) echo "<p align='center'><b><font color='82C0FF'>Record modificato<br><br> Per tornare indietro <a href='indexamm.html'>cliccare qui</a></b></p>"; else echo "<p align='center'><b><font color='82C0FF'>ERRORE!!! Record non modificato<br><br> Per tornare indietro <a href='utenti_m1.php'>cliccare qui</a></b></p>"; mysql_close($conn); ?> utenti_q1.php <?php $conn=mysql_connect("localhost","root",""); $sqlinterr = "select * from utenti"; $db = mysql_select_db("my_dfranceschetti "); $res=mysql_query("my_mizzisimone",$sqlinterr); $res=mysql_query($sqlinterr); $num=mysql_num_rows($res); echo "<center> <table border='1' align='center' cellspacing='5' cellpadding='12'> <tr> <th><font color='82C0FF'>ID</font></th> <th><font color='82C0FF'>Username</font></th> <th><font color='82C0FF'>Password</font></th> <th><font color='82C0FF'>Nome</font></th> <th><font color='82C0FF'>Cognome</font></th> <th><font color='82C0FF'>Email</font></th> <th><font color='82C0FF'>Indirizzo</font></th> </tr>"; for($i=0;$i<$num;$i++) 62 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi { 63 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $ID=mysql_result($res,$i,"ID"); $username=mysql_result($res,$i,"username"); $password=mysql_result($res,$i,"password"); $nome=mysql_result($res,$i,"nome"); $cognome=mysql_result($res,$i,"cognome"); $mail=mysql_result($res,$i,"mail"); $indirizzo=mysql_result($res,$i,"indirizzo"); echo "<tr> <td><font color='82C0FF'>$ID</font></td> <td><font color='82C0FF'>$username</font></td> <td><font color='82C0FF'>$password</font></td> <td><font color='82C0FF'>$nome</font></td> <td><font color='82C0FF'>$cognome</font></td> <td><font color='82C0FF'>$mail</font></td> <td><font color='82C0FF'>$indirizzo</font></td> </tr>"; } echo "</table></center>"; mysql_close($conn); ?> acqven_1.php <?php echo "<center>"; echo "<font face='comic sans MS' color=red><h2>Inserire i dati relativi agli acquisti e alle vendite</h2>"; echo "<form action='acqven_2.php' method='POST'>"; echo "Nome prodotto<br><input name='nompro' size='30' maxlength='30'><p>"; echo "Codice prodotto <br><input name='codpro' size='6' maxlength='6'><p>"; echo "Costo complessivo<br> <input name='pretot' size='12' maxlength='12'><p>"; echo "Quantit&agrave; acquistata<br> <input name='quaacc_new' size='3' maxlength='3'><p>"; echo "<input type='submit' value='Invia'>"; echo "<input type='reset' value='Cancella'>"; echo "</center>"; echo "</form>"; echo "</font>"; ?> 64 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi acqven_2.php <?php //Inizializzazione delle variabili $nompro=$_POST['nompro']; $codpro=$_POST['codpro']; $pretot=$_POST['pretot']; $quaacc_new=$_POST['quaacc_new']; //Connessione al db mysql $db=mysql_connect("localhost","root"); //Creazione del comando sql per l'inserimento dei dati $sqlinterr="insert acquistivendite"; $sqlinterr .="(nompro,codpro,pretot,quaacc_new)"; $sqlinterr .=" values"; $sqlinterr .="('$nompro','$codpro','$pretot','$quaacc_new')"; //Invio dei dati alla tabella attori del db proiezioni05; mysql_db_query("my_dfranceschetti",$sqlinterr); //Verifica che i dati siano stati inseriti correttamente $num=mysql_affected_rows(); //Controllo che il record sia stato inserito if($num>0) echo "Nuovo record inserito correttamente. <p>"; else echo "ERRORE! Record non inserito. <p>"; //Chiusura del database mysql_close($db); ?> 65 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi acqven_1.php <?php // Connessione al database MySQL $db=mysql_connect("localhost","root",""); // Creazione della variabile per l'interrogazione $sqlinterr ="select * from acquistivendite"; // Esecuzione dell'interrogazione $res=mysql_db_query("my_dfranceschetti",$sqlinterr); // Numero di record estratti dall'interrogazione $num=mysql_num_rows($res); // Intestazione della tabella echo "<table border='1' align='center'> <tr> <td>Selezione</td> <td>Codice acquisti</td> <td>Nome prodotto</td> <td>Codice prodotto</td> <td>Costo complessivo</td> <td>Quantit&agrave; acquistata</td> </tr>"; // Visualizzazione dei record estratti for ($i=0; $i<$num; $i++) { $codacq=mysql_result($res,$i,"codacq"); $nompro=mysql_result($res,$i,"nompro"); $codpro=mysql_result($res,$i,"codpro"); $pretot=mysql_result($res,$i,"pretot"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); // Visualizzazione della riga con radio echo "<tr> <td><input type='radio' name='selezi' value='$codacq'></td>"; echo " <td>$codacq</td> <td>$nompro</td> 66 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td>$codpro</td> 67 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td>$pretot</td> <td>$quaacc_new</td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del database mysql_close($db); ?> acqven_a2.php <?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"); // Creazione del comando sql di cancellazione $sqlinterr="delete from acquistivendite where"; $sqlinterr .=" codacq='$selezi'"; // Invio del comando SQL $res=mysql_db_query("my_dfranceschetti", $sqlinterr); // Risultato della cancellazione $num=mysql_affected_rows(); if ($num>0)echo "Record cancellato<p>"; else echo "Record non cancellato<p>"; // Chiusura database mysql_close($db); } else echo "Non &egrave; stato selezionato nessun record<p>"; 68 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi ?> 69 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi acqven_m1.php <?php echo "<h2><b><center>Selezionare il record da modificare</center></b></h2>"; echo "<form action='acqven_m2.php' method='POST'>"; // Connessione al DB MySQL $db=mysql_connect("localhost","root",""); // Costruzione della variabile $sqlinterr per la visualizzazione dei record $sqlinterr = "select * from acquistivendite"; // Esecuzione del comando di interrogazione $sqlinterr $res=mysql_db_query("my_dfranceschetti",$sqlinterr); $num=mysql_num_rows($res); // Inizio della tabella echo "<table border='1' align='center'>"; // Titolo echo "<tr> <td>Selezione</td> <td>Codice acquisto</td> <td>Nome prodotto</td> <td>Codice prodotto</td> <td>Costo complessivo</td> <td>Quantit&agrave; acquistata</td> </tr>"; // Estrapolazione dei valori degli attributi for ($i=0;$i<$num;$i++) { $codacq=mysql_result($res,$i,"codacq"); $nompro=mysql_result($res,$i,"nompro"); $codpro=mysql_result($res,$i,"codpro"); $pretot=mysql_result($res,$i,"pretot"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); // Visualizzazione degli attributi in tabella echo "<tr> <td><input type='radio' name='selezi' value='$codacq'></td> <td>$codacq</td> <td>$nompro</td> 70 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td>$codpro</td> 71 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi <td>$pretot</td> <td>$quaacc_new</td> </tr>"; } echo "</table>"; // Chiusura del DB MySQL mysql_close($db); // Bottone per l'invio dei dati a utenti_m2.php echo "<p><center><input type='submit' value='Record da modificare'></center>"; echo "</form>"; ?> acqven_m2.php <?php // Definizione delle variabili $selezi=$_POST['selezi']; if ($selezi) { // Connessione al DB MySQL $db=mysql_connect("localhost","root"); // Costruzione della variabile $sqlinterr per la visualizzazione dei record $sqlinterr = "select * from acquistivendite"; $sqlinterr.= " where acquistivendite.codacq='$selezi'"; // Esecuzione del comando select $res=mysql_db_query("my_dfranceschetti",$sqlinterr); //$num=mysql_num_rows($res); // Lettura del contenuto del record trovato $codacq_old=mysql_result($res,0,"codacq"); $nompro_old=mysql_result($res,0,"nompro"); $codpro_old=mysql_result($res,0,"codpro"); $pretot_old=mysql_result($res,0,"pretot"); 72 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi $quaacc_new_old=mysql_result($res,0,"quaacc_new"); 73 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi // Creazione della mappa a video per la modifica echo "<h3><center>Gestione acquisti e vendite: modifica</center></h3><p>"; echo "<form action='acqven_m3.php' method='POST'>"; echo " Codice acquisto<br><input name='codacq_new' value='$codacq_old'><p>"; echo " Nome prodotto<br><input name='nompro_new' value='$nompro_old'><p>"; echo " Codice prodotto<br><input name='codpro_new' value='$codpro_old'><p>"; echo " Costo complessivo<br><input name='pretot_new' value='$pretot_old'><p>"; echo " Quantit&agrave; acquistata<br><input name='quaacc_new_new' value='$quaacc_new_old'><p>"; echo "<input type='hidden' name='codacquisti' value='$selezi'>"; echo "<input type='submit' value='Modifica'> "; echo "<input type='reset' value='Cancella'>"; echo "</form>"; // Chiusura del DB MySQL mysql_close($db); } else echo "ERRORE!!! Nessuna selezione effettuata...<p>"; ?> acqven_m3.php <?php // Inizializzazione delle variabili $codacq_new=$_POST['codacq_new']; $nompro_new=$_POST['nompro_new']; $codpro_new=$_POST['codpro_new']; $pretot_new=$_POST['pretot_new']; $quaacc_new_new=$_POST['quaacc_new_new']; $codacquisti=$_POST['codacquisti']; // Connessione al DB MySQL $db=mysql_connect("localhost","root"); // Costruzione della variabile $sqlinterr per la modifica del record selezionato $sqlinterr ="update acquistivendite set "; $sqlinterr.="codacq='$codacq_new', "; $sqlinterr.="nompro='$nompro_new', "; $sqlinterr.="codpro='$codpro_new', "; $sqlinterr.="pretot='$pretot_new', "; $sqlinterr.="quaacc_new='$quaacc_new_new' "; $sqlinterr.="where codacq='$codacquisti'"; // Esecuzione del comando $sqlinterr 74 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi mysql_db_query("my_dfranceschetti", $sqlinterr); 75 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi // N. di record soggetti alla modifica $num = mysql_affected_rows(); // Se il record è stato trovato viene modificato. if ($num>0) echo "Record modificato.<p>"; else echo "ERRORE!!! Record non modificato.<p>"; // Chiusura del DB MySQL mysql_close($db); ?> acqven_q1.php <?php // Apertura del Database MySQL) $db=mysql_connect("localhost","root",""); // Costruzione della variabile da eseguire in SQL $sqlinterr = "select * from acquistivendite "; // Apertura del DB sito inserito nel DataBase MySQL // $db_selected = mysql_select_db('sito', $db); // Esecuzione del comando di interrogazione SQL $res=mysql_db_query("my_dfranceschetti",$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 acquisti e vendite</center></h2>"; echo "<table border='1' align='center'> <tr> <td><center><b>Codice acquisto</td> <td>Nome prodotto</td> <td>Codice prodotto</td> <td>Costo complessivo</td> <td>Quantit&agrave; acquistata</center><b></td></tr>"; 76 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi // Visualizzazione del contenuto dei record trovati for ($i=0;$i<$num;$i++) { $codacq=mysql_result($res,$i,"codacq"); $nompro=mysql_result($res,$i,"nompro"); $codpro=mysql_result($res,$i,"codpro"); $pretot=mysql_result($res,$i,"pretot"); $quaacc_new=mysql_result($res,$i,"quaacc_new"); // Visualizzazione dei dati letti echo "<tr> <td><center>$codacq</td> <td>$nompro</td> <td>$codpro</td> <td>$pretot</td> <td>$quaacc_new</center></td> </tr>"; } // Chiusura della tabella echo "</table>"; // Chiusura del DataBase MySQL mysql_close($db); ?> 77 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi Parte tecnica: Che cos'è un database (differenza di myisam e InnoDB): Il termine database o base di dati, indica un archivio dati, o un insieme di archivi, in cui le informazioni in esso contenute sono strutturate e collegate tra loro secondo un particolare modello logico (relazionale, gerarchico, reticolare o a oggetti) e in modo tale da consentire la gestione/organizzazione efficiente dei dati stessi grazie a particolari applicazioni software dedicate (DBMS), basate su un'architettura di tipo client-server, e ai cosiddetti query language per l'interfacciamento con le richieste dell'utente (query di ricerca o interrogazione, inserimento, cancellazione ed aggiornamento). InnoDB è un motore per il salvataggio di dati per MySQL, fornito in tutte le sue distribuzioni. Ecco in che cosa si differenzia da MyISAM. Per riparare una tabella dopo un crash del sistema, InnoDB riesegue le ultime istruzioni registrate nei log. MyISAM deve invece eseguire una scansione completa della tabella per poi ripararla, ed eventualmente ricostruire gli indici. Di conseguenza, il tempo impiegato da InnoDB per la riparazione non aumenta con il crescere dei dati contenuti nella tabella, mentre il tempo impiegato da MyISAM è proporzionale alle dimensioni della tabella. Mentre MyISAM si affida al sistema operativo per il caching delle letture e delle scritture sulle tabelle, InnoDB ha una sua propria gestione della cache. Le pagine di dati modificate non vengono inviate immediatamente al sistema e questo, in alcuni casi, può rendere la modifica dei dati molto più rapida con InnoDB. MyISAM generalmente immagazzina i record di una tabella nell'ordine in cui sono state create, mentre InnoDB le immagazzina nell'ordine seguito dalla chiave primaria. Quando viene utilizzata la chiave per la lettura di una riga, l'operazione avviene più rapidamente. InnoDB comprime i record molto meno rispetto a MyISAM. Questo significa che la memoria e lo spazio su disco richiesti da InnoDB sono maggiori, nonostante nella versione 5 di MySQL lo spazio su disco richiesto sia diminuito del 20%. Server web Un server web è un servizio o tipologia di server, e per estensione il computer su cui è in esecuzione, che si occupa di fornire, tramite software dedicato e su richiesta dell'utente (client), file di qualsiasi tipo, tra cui pagine web (successivamente visualizzabili dal web browser sul PC dell'utente). Le informazioni inviate dal server web all'utente viaggiano in 78 Dario Franceschetti Anno scolastico 2012-2013 ITE Bassi di Lodi rete trasportate dal protocollo HTTP. L'insieme di server web dà vita al World Wide Web, uno dei servizi più utilizzati della Rete Internet. Differenza fra pagine statiche e dinamiche Spesso quando si parla di realizzazione di siti internet può capitare di imbatterci in due diversi tipi di pagine: le statiche e le dinamiche. Solitamente il termine "dinamico" porta l'utente a confondersi pensando ad una pagina con elementi in movimento, cosa del tutto errata e che se non chiarita può portare ad infiniti fraintendimenti. All'inizio il web era formato da semplici pagine di testo, informazioni prese dalla carta e trascritte al computer che difficilmente subivano modifiche; lo stesso venne fatto più in là con l'arrivo dei siti di attività commerciali, il loro unico scopo era riportare su internet le informazioni riguardanti l'attività in questione con il solo fine pubblicitario. Il più grande limite di questa tipologia di siti era appunto la staticità, i dati inseriti non potevano essere modificate se non da un webmaster che avesse le conoscenze necessarie per intervenire sul codice. Con il passare degli anni le esigenze dei proprietari di questi siti andarono sempre aumentando costringendo il web a svilupparsi in maniera dinamica, si crearono cosi linguaggio di programmazione che potessero lavorare lato server permettendo l'elaborazione dei dati presenti sui server, gli stessi server che contenevano i siti internet. Il risultato di questo sviluppo furono i siti dinamici, formati da pagine dinamiche. La peculiarità delle pagine dinamiche era, ed è tutt'oggi, quella di avere un contenuto variabile che può dipendere da più fattori, solitamente dipende dal contenuto di un database popolato dall'utente tramite altre pagine dinamiche, un esempio classico può essere un sito contenente una lista di prodotti in vendita con relative caratteristiche, oppure un elenco di news. Cos’è il mysql MySQL, definito Oracle MySQL, è un Relational database management system (RDBMS), composto da un client con interfaccia a riga di comando e un server, entrambi disponibili sia per sistemi Unix che Windows, anche se prevale un suo utilizzo in ambito Unix. Cos’è il PHP PHP (acronimo di "PHP: Hypertext Preprocessor", preprocessore di ipertesti) è un linguaggio di programmazione interpretato, originariamente concepito per la programmazione Web ovvero la realizzazione di pagine web dinamiche. L'interprete ha una licenza open source e libera. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica. (Fonte: 79 Wikipedia)