Note sugli esempi php e sulla struttura del sito Note sugli esempi php e struttura del sito Introduzione pag. 2 Impostazioni per il sito pag. 6 Impostazioni di default per Apache e MySQL pag. 9 Configurare il server Apache pag. 11 Configurazione di MySQL tramite my.ini pag. 14 Esempi proposti pag. 16 Realizzare un sito personale utilizzando XAMMPPlite pag. 19 Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -1- Note sugli esempi php e sulla struttura del sito Introduzione Gli esempi PHP proposti fanno riferimento ad un sito strutturato nel seguente modo da utilizzare con XAMPP o con Apache, MySQL e PHP installati separatamente : Tutto il sito è contenuto nella cartella c:/salva/miosito La pagina indice.php (da utilizzare eventualmente come pagina da avvio) consente di ottenere l’elenco dei file e cartelle contenute nella cartella di default del sito. Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -2- Note sugli esempi php e sulla struttura del sito La cartella contiene le immagini usate dalla pagina indice.php Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -3- Note sugli esempi php e sulla struttura del sito La cartella contiene le pagine php per la gestione di database MySQL La pagina indicedir.php ha la stessa funzione della pagina indice.php e viene richiamata automaticamente dalla pagina indice.php quando si seleziona una cartella. La cartella contiene i database MySQL Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -4- Note sugli esempi php e sulla struttura del sito Le cartelle e contengono pagine per la gestione, rispettivamente, di una rubrica telefonica e di dati anagrafici relativi ai dipendenti di una generica azienda. Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -5- Note sugli esempi php e sulla struttura del sito Impostazioni per il sito Per ottenere un sito strutturato nel modo proposto occorre configurare opportunamente sia Apache che MySQL variando le impostazione di default in modo che le pagine del sito e i database siano settati ai valori desiderati. Se, invece, si vuole utilizzare le impostazioni di default del web server e di MySQL è sufficiente copiare il file e le cartelle evidenziate nella figura successiva nella cartella del web server (XAMPP o Apache) e la cartella di nella cartella di MySQL o di XAMPP (vedere paragrafo successivo). Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -6- Note sugli esempi php e sulla struttura del sito Se si utilizza la versione XAMPPlite tutti i file di configurazione, gli esempi ed il database sono compresi in un’unica cartella : in sono presenti gli esempi : Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -7- Note sugli esempi php e sulla struttura del sito e nella cartella mysql\data i database : Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -8- Note sugli esempi php e sulla struttura del sito Impostazioni di default per Apache e MySQL Se è stata effettuata una installazione di Apache 2.2 e MySQL 5.0 (nella cartella c:\salva) le impostazioni di default sono le seguenti : Le pagine del sito sono ricercate nella cartella C:\salva\Apache Software Foundation\Apache2.2\htdocs I database sono ricercati nella cartella C:\salva\MySQL\MySQL Server 5.0\data Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) -9- Note sugli esempi php e sulla struttura del sito Se è stata effettuata una installazione XAMPP (nella cartella c:\salva) le impostazioni di default sono le seguenti : Le pagine del sito sono ricercate nella cartella c:\salva\xampp\htdocs I database sono ricercati nella cartella c:\salva\xampp\mysql\data Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 10 - Note sugli esempi php e sulla struttura del sito Configurare il server Apache Variazione della cartella di default Aprire il file di configurazione (httpd.conf) di Apache che si trova nella seguente posizione : per Apache 2.2 Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 11 - Note sugli esempi php e sulla struttura del sito per XAMPP ed apportare le seguenti modifiche : # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:/salva/xampp/htdocs" # # # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "C:/salva/miosito" # Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 12 - Note sugli esempi php e sulla struttura del sito # # This should be changed to whatever you set DocumentRoot to. # <Directory "C:/salva/xampp/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # This should be changed to whatever you set DocumentRoot to. # <Directory "C:/salva/miosito"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews Le pagine da eseguire con Apache ora si trovano nella cartella C:/salva/miosito Nota : le pagine, comunque, devono essere sempre lanciate dal browser con : http://localhost/pagina.html, http://localhost/pagina.php, ecc. Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 13 - Note sugli esempi php e sulla struttura del sito Configurazione di MySQL tramite my.ini Prima di effettuare qualsiasi variazione sul file my.ini è necessario fermare il server MySQL e riavviarlo dopo le variazioni effettuate. Aprire con un editor il file my.ini (prima di modificare il file my.ini è consigliabile farne una copia). Il file my.ini si trova nella seguente posizione : per MySQL 5.0 Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 14 - Note sugli esempi php e sulla struttura del sito per XAMPP ed apportare la seguente modifica : #Path to the database root datadir="C:/salva/miosito/Data/" I database MySQL si trovano, ora, nella cartella C:/salva/miosito/Data. Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 15 - Note sugli esempi php e sulla struttura del sito Esempi proposti Gli esempi proposti riguardano la gestione di una “Rubrica telefonica” e la gestione dei “Dati anagrafici dei dipendenti” di una generica azienda. E’ consigliabile consultare e provare gli esempi php proposti : nel seguente ordine : Esempio Descrizione connessioneserverMySQL.php connessione al server creazioneDBMySQL.php creazione del database dbmiodb (usando gli esempi ed il database proposto quest’ultimo risulta già creato) aperturadbMySQL.php apertura del database dbmiodb Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 16 - Note sugli esempi php e sulla struttura del sito Aprire la cartella e provare gli script nel seguente ordine : Esempio Descrizione 1_creazioneRubrica.php creazione della tabella rubrica (risulta già creata) 2_inserimentoDirettoRubrica.php inserimento diretto di un record nella tabella rubrica 3_formInserimentoRubrica.php form per inserimento dati nella tabella rubrica 4_elencoOrdinato.php elenco ordinato dei dati presenti nella tabella rubrica 5_visualizzaRubrica.php visualizzazione dati presenti nella tabella rubrica 6_visualizzaRubrica.php visualizzazione dati presenti nella tabella rubrica 7_visualizzaRubrica.php visualizzazione dati presenti nella tabella rubrica Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 17 - Note sugli esempi php e sulla struttura del sito Aprire la cartella e provare gli script nel seguente ordine : Esempio Descrizione 01_creatabellaProfessioni.php creazione della tabella tbprofessioni (utilizzata dalla tabella tbdipendenti) 02_creatabellaComuni.php creazione della tabella tbcomuni (utilizzata dalla tabella tbdipendenti) 03_creatabellaDipendenti.php creazione della tabella tbdipendenti (che utilizza chiavi esterne alle tabelle tbprofessioni e tbcomuni) 06_riempimentoCasellacombinata.php riempimento di una casella combinata a discesa con dati prelevati dalla tabella tbprofessioni 07_formInserimentoProfessioni.php form per inserire dati nella tabella tbprofessioni 08_formInserimentoProfessioni.php form per inserire dati nella tabella tbcomuni 09_formInserimentoDipendente.php form per inserire dati nella tabella tbdipendenti 10_ricercaDipendente.php form per la ricerca condizionata di dati nella tabella tbdipendenti 11_elencoOrdinatoComuni.php elenco ordinato, a scelta, dei dati presenti nella tabella tbcomuni 12_modificaEliminazioneDipendente.php richiesta di modifica o eliminazione di un record dalla tabella tbdipendenti modifica.php form per la modifica di un record della tabella tbdipendenti elimina.php form per la eliminazione di un record dalla tabella tbdipendenti Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 18 - Note sugli esempi php e sulla struttura del sito Realizzare un sito personale utilizzando XAMPPlite Realizzare le pagine php per la gestione di una Biblioteca. Il database (dbbiblioteca) è formato semplicemente dalla tabella tblibri, comprendenti le informazioni fondamentali per gestire i libri della Biblioteca, e dalla tabella ausiliaria tbgeneri, utilizzata dalla tabella tblibri come tabella esterna, comprendente la classificazione dei generi a cui può appartenere un libro (avventura, giallo, fantascienza, storia, ecc.). Utilizzando XAMMPlite (usando XAMPP o APACHE con PHP e MYSQL procedimento non è molto diverso) è consigliabile procedere nel modo seguente : il Nella cartella E:\xampplite\htdocs (E: è la lettera, in questo caso, associata alla pen drive) creare una nuova cartella : in cui saranno inseriti i vari scripts realizzati Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 19 - Note sugli esempi php e sulla struttura del sito Copiare, prelevandoli dalla cartella E:\xampplite\htdocs\esempi_php, lo script e la cartella seguente (se si vuole sfruttare la possibilità di visualizzare il contenuto della cartella stessa) : Copiare, prelevandoli dalla cartella script: E:\xampplite\htdocs\esempi_php, i seguenti Esempio Descrizione connessioneserverMySQL.php connessione al server creazioneDBMySQL.php creazione del database dbbiblioteca aperturadbMySQL.php apertura del database dbbiblioteca Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 20 - Note sugli esempi php e sulla struttura del sito Modificare lo script: connessioneserverMySQL.php specificando il nome del database che si vuole gestire : <?php // script : connessioneserverMySQL.php // definizione delle variabili : $nomeserver = "localhost"; //nome del server $nomeutente="root"; //username o login d'accesso al database $dbpassword = ""; // password del database $nomedb = "dbBiblioteca"; // nome del database a cui connettersi /* Connessione ad un Server MySQL mediante la funzione : mysql_connect ("hostname", "username", "password"); all'interno della variabile $link é memorizzato il processo di connessione al server. Nel momento in cui si deve chiudere la connessione anziché scrivere : mysql_close ("hostname", "username", "password"); é sufficiente scrivere l'istruzione : mysql_close ($link); */ $link = mysql_connect ("$nomeserver", "$nomeutente", "$dbpassword"); if ($link) { /* se la connessione avviene correttamente viene visualizzato un messaggio (che conviene eliminare dopo aver superato la fase di test) */ echo("Connessione al server avvenuta correttamente!"); } else { /* se la connessione non avviene possono essere visualizzati, per esempio, messaggi d'errore usando le seguenti funzioni : la funzione mysql_errno() restituisce il numero dell'errore verificatosi la funzione mysql_error() restituisce la descrizione dell'errore verificatosi */ echo "Errore nr. <b>". mysql_errno() ." </b> nella connessione al server ! <br>"; echo "Errore <b>". mysql_error(). " </b> nella connessione al server !"; exit(); } ?> E’ utile ricordare che lo script aperturadbMySQL.php, utilizzato da tutti gli script che si vogliono realizzare per risolvere il problema proposto, effettua la connessione al server MySQL ed apre il database specificato. Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 21 - Note sugli esempi php e sulla struttura del sito <?php // script : aperturadbMySQL.php // APERTURA DATABASE // connessione al server include("connessioneserverMySQL.php"); /* Dopo la connessione al server MySql é necessario aprire il database con la funzione : mysql_select_db (nomedatabase,connessione) il database deve essere già esistente!!! altrimenti la funzione restituisce un errore! Il nome del database è definito nel file "connessioneserverMySQL.php" all'interno della variabile $nomedb. La variabile $link, che definisce la connessione, viene generata nel file "connessioneserverMySQL.php" */ $apridb=mysql_select_db ($nomedb,$link); if ($apridb) { /* se l'apertura del database avviene correttamente viene visualizzato un messaggio (che conviene eliminare dopo aver superato la fase di test) */ // echo "Database <b>$nomedb</b> aperto con successo <br>"; } else { echo "Errore nr. <b>". mysql_errno() ." </b> nella selezione del database ! <b>$nomedb</b><br>"; echo "Errore <b>". mysql_error(). " </b> nella selezione del database <b>$nomedb</b>!<br>"; exit(); } ?> Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 22 - Note sugli esempi php e sulla struttura del sito Eseguire, da un browser, lo script creazioneDBMySQL.php : come si può notare nella cartella E:\xampplite\mysql\data sottocartella relativa al database creato : è stata creata una Realizzare, nell’ordine, almeno(!!) i seguenti script : Esempio Descrizione creatabellaGeneri.php creazione della tbgeneri tabella 01_creatabellaProfessioni.php Script di riferimento creatabellaLibro.php creazione della tblibri tabella 03_creatabellaDipendenti.php formInserimentoGeneri.php form per inserire dati 07_formInserimentoProfessioni.php nella tabella tbgeneri formInserimentoLibri.php form per inserire dati nella tabella tblibri 09_formInserimentoDipendente.php formRicercaLibro.php form per la ricerca condizionata di dati nella tabella tblibri 10_ricercaDipendente.php Esempio di un sito in php per la gestione di database MySQL (a cura del prof. Salvatore De Giorgi) - 23 -