Note sugli esempi php e struttura del sito · Impostazioni di default per Apache e MySQL pag. 9 ......

23
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 -

Transcript of Note sugli esempi php e struttura del sito · Impostazioni di default per Apache e MySQL pag. 9 ......

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" #

E

# # 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" #

sempio 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 il procedimento non è molto diverso) è consigliabile procedere nel modo seguente :

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 E:\xampplite\htdocs\esempi_php, i seguenti script:

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 :

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.

<?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(); } ?>

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 è stata creata una sottocartella relativa al database creato :

Realizzare, nell’ordine, almeno(!!) i seguenti script :

Esempio Descrizione Script di riferimento

creatabellaGeneri.php creazione della tabella tbgeneri

01_creatabellaProfessioni.php

creatabellaLibro.php creazione della tabella tblibri

03_creatabellaDipendenti.php

formInserimentoGeneri.php form per inserire dati nella tabella tbgeneri

07_formInserimentoProfessioni.php

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 -