La programmazione web: lato client e lato server



Documenti analoghi
19. LA PROGRAMMAZIONE LATO SERVER

Esercizio data base "Biblioteca"

Corso di PHP. Prerequisiti. 1 - Introduzione

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Per accedere clicca su START o AVVIO (in basso a sinistra sul tuo schermo), poi su PROGRAMMI, ACCESSORI e infine su BLOCCO NOTE.

Guida all uso. Esso sarà riportato nell intestazione. Vediamo:

Esercizi di JavaScript

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

PHP e MySQL. Guida scaricata da

Manuale Helpdesk per utenti

istruzioni per l uso

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

Guida all uso di Java Diagrammi ER

Progettazione Web Applicazioni client-server

MySQL Database Management System

Leggere un messaggio. Copyright 2009 Apogeo

2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato Finestra attiva o nuovo documento

Database 1 biblioteca universitaria. Testo del quesito

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

Introduzione allo sviluppo Web. Studium Generale, a.a , II semestre

STAMPA UNIONE DI WORD

Le query di raggruppamento

COME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE

Richiesta pagina PHP (es: index.php)

Guida all uso del servizio

Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

<?php include './include/page.php';

SOMMARIO... 3 INTRODUZIONE...

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

Lezione nr. 7. >> Come posso recuperare un valore da un campo TEXT?

COME RIOTTENERE L ACCESSO ALLA CASELLA PEC DI ARUBA

Progetto ittorario Anno scol

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

MANUALE PARCELLA FACILE PLUS INDICE

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Pagina 1 di 10

Laboratorio di Alfabetizzazione Informatica - Esame 20 settembre 2013.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

File, Modifica, Visualizza, Strumenti, Messaggio

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

GUIDA ALLA PROMOZIONE SUL SITO

Utilizzo delle formule in Excel

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Javascript: il browser

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

- Il sito dedicato alle associazioni no-profit di Milano e provincia

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Gestione delle Presenze WorkFlow Manuale Operativo

Guido d uso sito internet Unione Valdera

GESGOLF SMS ONLINE. Manuale per l utente

I.N.A.I.L. Certificati Medici via Internet. Manuale utente

Vi ricordiamo che per qualsiasi problema tecnico o informazione potete contattare info@eduitalia.org oppure Francesco al

NOZIONI BASE SHELL E SCRIPT LINUX

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

MySQL Database Management System

ICARO Terminal Server per Aprile

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Registratori di Cassa

MODULO 5 ACCESS Basi di dati. Lezione 4

GUIDA UTENTE BILLIARDS COUNTER (Vers )

Integrazione InfiniteCRM - MailUp

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

PORTALE CLIENTI Manuale utente

FPf per Windows 3.1. Guida all uso

ACCESSO AL SISTEMA HELIOS...

Laboratorio di Informatica

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Convertitori numerici in Excel

Servizio Feed RSS del sito CNIT

I FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

Matematica in laboratorio

ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO

Manuale Utente Albo Pretorio GA

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

ISI s.r.l. Corso di Access 05 CREARE UN ELENCO MAILING ED INVIARE MESSAGGI DI POSTA ELETTRONICA Pag. 1/6

IL MIO PRIMO SITO: NEWS

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Introduzione alla programmazione in C

Figura 1 Le Icone dei file di Excel con e senza macro.

Guida al CRM INGENIA Group

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Guida operativa. My Legal Corner. BestSoft SOFTWARE IN SANITÀ

Standard Nazionale di Comunicazione Mercato Gas

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

InitZero s.r.l. Via P. Calamandrei, Arezzo

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Creare un nuovo articolo sul sito Poliste.com

Guida alla registrazione on-line di un DataLogger

Transcript:

La programmazione web: lato client e lato server Parlando di PHP e di altri linguaggi di scripting può capitare di sentir citare le espressioni "lato client" e "lato server": per chi non è esperto della materia, tali definizioni possono suonare un po' misteriose. Proviamo a chiarire questi concetti: vediamo come funziona, in maniera estremamente semplificata, la richiesta di una pagina Web. L'utente apre il suo browser e digita un indirizzo Internet, ad esempio www.nostrosito.it/pagina1.html: a questo punto il browser si collega al server www.nostrosito.it e gli chiede la pagina pagina1.html. Tale pagina contiene esclusivamente codice HTML: il server la prende e la spedisce al browser, così com'è (insieme ad eventuali file allegati, ad esempio immagini). Il nostro utente quindi avrà la possibilità di visualizzare questa pagina. Supponiamo ora che l'utente richieda invece la pagina pagina2.php: questa, contrariamente a quella di prima, non contiene solo codice HTML, ma anche PHP. In questo caso il server, prima di spedire la pagina, esegue il codice PHP, che in genere produce altro codice HTML: ad esempio, PHP potrebbe controllare che ore sono e generare un messaggio di questo tipo: "Buon pomeriggio, sono le 17.10!" oppure: "Ehi, che ci fai alzato alle 4 del mattino?". Dopo l'esecuzione del codice php, la pagina non conterrà più codice PHP, ma dall interprete php verrà generata una pagina HTML. A questo punto è pronta per essere spedita al browser. (Ovviamente, il file che non contiene più codice PHP non è quello "originale", ma la "copia" che viene spedita al browser. L'originale rimane disponibile per le prossime richieste.) Quindi l'utente vede solo il codice HTML, e non ha accesso al codice PHP che ha generato la pagina, che resta sul server. Nell'esempio che abbiamo visto prima, pagina1 aveva l'estensione.htm o.html, mentre pagina2 aveva l'estensione.php: sulla base di questo, il server sa che nel secondo caso deve eseguire PHP, mentre nel primo può spedire il file così com'è. In realtà il server deve essere istruito per poter fare ciò: generalmente gli si dice di eseguire PHP per le pagine che hanno estensione.php. PHP e l'html PHP è un linguaggio la cui funzione fondamentale è quella di produrre codice HTML, che è quello dal quale sono formate le pagine web. Ma, poichè PHP è un linguaggio di programmazione, abbiamo la possibilità di analizzare diverse situazioni (l'input degli utenti, i dati contenuti in un database) e di decidere, di conseguenza, di produrre codice HTML condizionato ai risultati dell'elaborazione. Questo è, in parole povere, il Web dinamico. Come abbiamo visto precedentemente, quando il server riceve una richiesta per una pagina PHP, la fa analizzare dall'interprete del linguaggio, il quale restituisce un file contenente solo il codice che deve essere inviato al browser (in linea di massima HTML, ma può esserci anche codice JavaScript, fogli di stile CSS o qualunque altro contenuto fruibile da un browser, come immagini e documenti Pdf). Detto questo, come avviene la produzione di codice HTML? La prima cosa da sapere è come fa l'interprete PHP a discernere quale porzione di un file contiene codice da elaborare e quale codice da restituire solamente all'utente. Questa fase di riconoscimento è molto importante, dato che permette a PHP di essere incluso all'interno di normale codice HTML in modo da renderne dinamica la creazione. Il codice PHP deve essere compreso fra appositi tag di apertura e di chiusura, che sono i seguenti: //tag di apertura //tag di chiusura (le due slash // identificano l inizio di un commento) Tutto ciò che è contenuto fra questi tag deve corrispondere alle regole sintattiche del PHP, ed è codice che sarà eseguito dall'interprete PHP (lato server) e non sarà inviato direttamente al browser (lato client). Per generare l'output da inviare al browser attraverso codice PHP viene normalmente utilizzato il costrutto echo. Vediamo un semplice esempio, composto da codice HTML e codice PHP

(il codice PHP è evidenziato in grassetto): <html> <head> <title> Pagina di prova PHP </title> </head> <body> echo "Buona giornata!"; </body> </html> Questo banalissimo codice produrrà un file HTML il cui contenuto sarà semplicemente: <html> <head> <title> Pagina di prova PHP </title> </head> <body> Buona giornata! </body> </html> E quindi l'utente vedrà sul suo browser la riga "Buona giornata!". Il titolo della pagina sarà invece Pagina di prova PHP. La sintassi del PHP PHP necessita di una coppia di tag per l'apertura e la chiusura del codice contenuto in un file richiesto da un Web Server. Si tratta dei tag...codice php... I commenti. Sono possibili diverse soluzioni per inserire commenti all interno del codice php: echo ciao ; // stampa la parola ciao [commento in stile C++, sempre a fine riga, senza chiusura] echo /* funzione per la stampa di codice */ <br /> [stile C, con apertura e chiusura] Tutto ciò che noi inseriamo nei commenti verrà ignorato dall interprete che andrà ad elaborare il codice.

Le variabili. Possiamo immaginare una variabile come una specie di contenitore alla quale associamo un nome all'interno del quale viene conservato il valore che ci interessa che può cambiare di volta in volta. All interno del programma potremo richiamare il contenitore indicandone unicamente il nome così da poter ottenere il suo contenuto che può variare (..variabile). In PHP possiamo scegliere il nome delle variabili usando lettere, numeri e underscore (_). Il primo carattere del nome non può essere un numero. Dobbiamo inoltre ricordarci che il nome delle variabili è sensibile all'uso delle maiuscole e delle minuscole. Nello script PHP il nome delle variabili è preceduto dal simbolo del dollaro ($). PHP, a differenza di molti altri linguaggi, non richiede che le variabili vengano dichiarate prima del loro uso. $a = 5; //assegna alla variabile a il valore 5 echo $a; //stamperà la varaibile a, quindi 5 Con le variabili possiamo eseguire somme, sottrazioni, moltiplicazioni ecc: $a = 74; $b = 29; $risultato = $a + $b; echo $risultato; //stamperà il risultato di a+b I tipi di dato. Come abbiamo detto in php non è necessario dichiarare le variabili. Possiamo dunque inserire qualsiasi contenuto al suo interno seguendo i seguenti criteri: $vero = true; //valore booleano, non sono necessari gli apici $falso = false; $int1 = 129; //numeri interi, non sono necessari gli apici $int2 = -715; $int3 = 5 * 8; //$int3 vale 40 $vm1 = 4.153; // equivale a 4,153 $vm2 = 3.2e5; // equivale a 3,2 * 10^5, cioè 320.000 $vm3 = 4E-8; // equivale a 4 * 10^-8, cioè 4/100.000.000 = 0,00000004 $frase = oggi c è il sole ; //stringhe, sono obbligatori gli apici o di apertura e chiusura $frase = oggi piove ; Da ricordare che l uso degli apici è obbligatorio anche se stampiamo delle frasi: echo ciao ; Per utilizzare apici all interno di stringhe aperte dallo stesso apice: echo Disse \ no \ e scappai ; Prima dell apice da inserire nel testo utilizzare lo slash \, stamperà : disse no e me ne andai $frase = Disse \ no \ e me ne andai ;

Gli operatori aritmetici Gli operatori sono un altro degli elementi di base di qualsiasi linguaggio di programmazione, in quanto ci consentono non solo di effettuare le tradizionali operazioni aritmetiche, ma più in generale di manipolare il contenuto delle nostre variabili. Il più classico e conosciuto degli operatori è quello di assegnazione: $nome = Pippo ; /*il simbolo = assegna alla variabile che sta alla sua destra il valore che sta alla sua sinistra*/ Operazioni aritmetiche: $a = 3 + 7; //addizione $b = 5-2; //sottrazione $c = 9 * 6; //moltiplicazione $d = 8 / 2; //divisione $e = 7 % 4; //modulo altri casi: $a = $a + 10; //il valore di $a aumenta di 10 $a++; ++$a; //incrementa di 1 a $a--; --$a; //decrementa di 1 a Gli operatori di confronto Anche php, come tutti i linguaggi di programmazione, può determinare se due valori messi a confronto da una condizione restituiscono un valore vero o falso (booleano: true, false) == : uguale (NB: l uguale si ripete due volte!!)!= : diverso > : maggiore >= : maggiore o uguale < : minore <= : minore o uguale Potremo dunque mettere a confronto due variabili, una variabile e una stringa o un numero, ed eseguire operazioni diverse a seconda che una determinata condizione sia vera o falsa. if ($età > 13) { echo puoi passare ; //se la tua età è maggiore di 13 anni puoi passare. La sintassi per le condizioni IF in php è la seguente: if (condizione1) { azione1 //se la condizione1 è vera allora eseguirà azione1 elseif (condizione2) { azione2 //se la condizione1 è falsa e condizione2 è vera eseguirà azione1 else { azione3 //se le condizioni 1 e 2 sono false eseguirà azione3 E possibile utilizzare unicamente IF, senza ELSE, IF ed ELSE, senza ELSEIF a seconda delle necessità. E anche possibile concatenare più condizioni utilizzando dei connettivi logici. Per esempio per tradurre in php la seguente frase se ti chiami Alfredo e suoni la chitarra allora puoi accedere. : if (($nome == Alfredo ) && ($suoni == true)) { puoi accedere ; Da notare: l uso della parentesi che racchiude le due condizioni, l uso dell operatore && per tradurre e. Altre situzioni: se ti chiami Alfredo o suoni la chitarra o hai meno di 20 anni allora puoi accedere. if (($nome == Alfredo ) ($suoni == true) ($canti == true)) { puoi accedere ;

da notare l uso di per tradurre o. Attraverso questa sintassi possiamo porre qualsiasi condizione seguendo le regole della logica proposizionale. I cicli. Un ciclo ci permette di eseguire in maniera ripetitiva una determinata operazione finché una determinata condizione è vera o falsa. FOR: Il ciclo for esegue un ciclo di informazioni fino a quando la condizione iniziale non diviene falsa. La sintassi è la seguente: for (espressione iniziale; condizione; aggiornamento){...operazioni... Esempio: for ($a=0; $a<=3; $a++){ echo "ciao $a <br>"; Ottiene come risultato: ciao 0 ciao 1 ciao 2 ciao 3 WHILE: Il ciclo while dura mentre la condizione è vera. Per far questo dobbiamo necessariamente far variare la condizione all'interno del ciclo. Esempio: $a = 0; while($a<=3){ echo "ciao $a <br>"; $a++; In questo caso il ciclo while continua fino a quando $a non raggiunge il valore 3. DO WHILE: Il ciclo DO WHILE è molto simile al ciclo WHILE. La differenza sostanziale è che il ciclo WHILE può non essere eseguito, questo se la condizione risulta falsa fin dall'inizio. Il ciclo DO WHILE si esegue sempre, almeno per una volta. Questo perché il ciclo DO WHILE inserisce prima le azioni da fare e dopo la condizione. Il server esegue le prime istruzioni, poi legge la condizione e se è sempre vera riesegue le istruzioni. Esempio: do {...azioni... while (condizione) Le funzioni. Una delle caratteristiche principali di php è la possibilità di gestire le funzioni. Il vantaggio di una funzione è paragonabile a quella di una macro: è possibile cioè eseguire una stessa operazione (per esempio il MCD di 3 numeri) più volte in diversi punti del codice senza necessariamente dover riscrivere tutto il codice dell operazione ma semplicemente richiamando il nome della funzione nella quale è contenuto l insieme delle operazioni.

Vediamo un esempio: function il_maggiore($num1, $num2, $num3) { if (($num1 > $num2) && ($num1 > $num3) ) return $num1 //se num1 è maggiore di num2 e num3 allora num1 è il maggiore elseif (($num2 > $num1) && ($num1 > $num2) ) return $num2 elseif (($num3 > $num1) && ($num1 > $num2) ) return $num3 Questa funzione restituisce (return) il valore maggiore tra tre numeri inseriti (num1, num2, num3). Nelle operazioni all interno della funzione, come si vede dal codice, possiamo richiamare le variabili num1, num2, num3 che vengono assegnate quando noi andremo ad utilizzare la funzione: echo il_maggiore(10, 2, 3); richiama la funzione il_maggiore che restituirà il massimo dei tre valori inseriti. Ovviamente potremo modificare a piacere i tre valori ma non potremo utilizzarne di più o di meno! Non potremo cioè inserire 10 numeri il_maggiore(10, 23, 42, 43, 12, 2, ecc) e 2 il_maggiore(23, 21), ma potremo solo inserire il numero di valori dichiarato nella funzione: function il_maggiore($num1, $num2, $num3) //sono dichiarate 3 variabili e dunque potremo usare tre valori. La pagina dinamica: come inviare richieste al server. La principale peculiarità del web dinamico è la possibilità di variare i contenuti delle pagine in base alle richieste degli utenti. Questa possibilità si materializza attraverso i meccanismi che permettono agli utenti, oltre che di richiedere una pagina ad un web server, anche di specificare determinati parametri che saranno utilizzati dallo script PHP per determinare quali contenuti la pagina dovrà mostrare. In alcuni casi, i dati che devono essere trasmessi allo script sono piuttosto numerosi: pensiamo ad esempio ad un modulo di registrazione per utenti, nel quale vengono indicati nome, cognome, indirizzo, telefono, casella e-mail ed altri dati personali. In questo caso lo script, dopo averli ricevuti, andrà a salvarli in database. Vedremo ora come il PHP riceve dati dall'utente. Esistono due sistemi per passare dati ad uno script php: il metodo GET e il metodo POST. ESEMPIO: Supponiamo di voler inviare i valori di base e altezza di un rettangolo al file area.php, il quale calcolerà l area del rettangolo e la visualizzerà nel browser. A questo scopo dobbiamo creare due file, il primo di tipo html, a cui diamo il nome leggi_dati.htm, contenente i moduli per l acquisizione dell input, il secondo di tipo php, con il nome area.php. Il file leggi_dati.htm produrrà i seguenti moduli: Base Altezza Questo modulo verrà tradotto in html inserendo la funzione post e action: <form action="area.php" method="post"> Base <input type="text" name="base"> Altezza <input type="text name="altezza > <input type="submit" name="submit" value="invia"> </form>

Inserendo method= post, e action= area.php, una volta che premiamo il tasto INVIA (submit) invieremo ad area.php, tutte le variabili identificate con il nome dell input (BASE e ALTEZZA) con il valore che noi andremo a scrivere dentro al singolo campo del modulo. Dopo aver creato il file html, creiamo il file area.php che collocheremo sul server, il cui scopo è quello di recuperare i dati inviati dal file leggi_dati.htm, calcolare l area, creare la pagina web da inviare al browser per visualizzare l area: <html><head><title>calcola Area</title></head> <body> $bas=$_post["base"]; $alt=$_post["altezza"]; $AREA= $bas * $alt; echo "IL RISULTATO VALE $AREA"; </body> </html> Nelle due istruzioni: $bas=$_post["base"]; $alt=$_post["altezza"]; vengono recuperati i valori contenuti nelle variabili BASE e ALTEZZA (dal file leggi_dati.htm). Questi valori sono assegnati alle nuove variabili php, $bas e $alt. Nell istruzione successiva avviene il calcolo del prodotto delle due variabili e il risultato viene assegnato alla variabile $AREA. Infine, il comando echo provvede alla visualizzazione sul browser del valore contenuto nella variabile AREA. Le variabili $_SERVER Quando ci colleghiamo ad una qualsiasi pagina web il nostro browser (Internet Explorer, Firefox) invia di nascosto al server alcune informazioni relative al nostro software: sistema operativo utilizzato, risoluzione, lingua, ecc. Tutte queste informazioni vengono trasformate dal server in delle variabili che possono essere richiamate nel codice php. Vediamo la lista di queste variabili: $_SERVER['HTTP_REFERER'] : restituisce l indirizzo (url) di provenienza. Possiamo quindi determinare l indirizzo della pagina dalla quale l utente proviene. Utile per creare statistiche: salvando tutti gli indirizzi di provenienza in un database, per esempio, potremo sapere in che percentuale la nostra utenza si suddivide. Potremo così sapere se accedono da google, da altri siti, direttamente senza passare da altre pagine, ecc. $_SERVER['REQUEST_TIME'] : restituisce l ora esatta in cui lo script viene eseguito. Disponibile solo dalla versione 5.1 di php. $_SERVER['HTTP_ACCEPT_LANGUAGE'] : restituisce la lingua corrente utilizzata dal nostro browser. Utile per siti multi-lingua: potremo adattare una pagina automaticamente a seconda della provenienza dell utente. $_SERVER['HTTP_USER_AGENT'] : restituisce una stringa dalla quale possiamo determinare il programma utilizzato per accedere alla nostra pagina. Possiamo così fare una statistica dei programmi utilizzati per visualizzare il nostro sito (Firefox, Explorer, Safari, Opera ecc) ma anche sapere quando un BOT (i programmino dei motori di ricerca che girano per la rete alla ricerca di contenuti) visita una nostra pagina. Un esempio: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Possiamo anche determinare il sistema operativo utilizzato.

Ve ne sono molte altre ma meno utili. Rimando alla reference guide del php in www.php.net dove potete trovare tutto ciò che volete sul php (molte pagine sono anche tradotte in italiano). Il database: MYSQL Fin ora il php sembrerebbe un linguaggio estremamente potente e versatile: è effettivamente un linguaggio paragonabile ai più complessi C o C++ (dalla versione php 5 c è il pieno supporto per la programmazione ad oggetti) ma a cui puoi avere accesso attraverso internet. Ma se non introduciamo l uso di un database l uso che ne possiamo fare è estremamente ridotto. Possiamo eseguire operazioni, anche complesse, ma non avendo la possibilità alcuna di salvare i nostri risultati la cosa risulta abbastanza limitativa. I database vengono appunto incontro a questo inconveniente. Sono dei server, separati rispetto all host che stiamo utilizzando come spazio web, che utilizzano un protocollo particolare, e nella quale possiamo salvare dati in particolari tabelle. Queste tabelle possono essere elaborate, incrociate, eseguendo direttamente operazioni dal php. CLIENT SERVER http Database MYSQL Il server http, dove sono contenuti i nostri codici php, può collegarsi ad un database, inserire, ritirare o modificare informazioni e restituire dei risultati al client. E tutto questo lo possiamo fare tramite il php. Possiamo quindi per esempio gestire un servizio di news ad inserimento ed aggiornamento automatico. Il client (utente) vuole inserire una news. Compila un form (modulo html) in creanews.php, attraverso il metodo POST il browser invierà i dati al server dov è contenuta la pagina php, per esempio inseriscinews.php: il codice php di inseriscinews.php provvederà ad inserire all interno del database la news. Creando queste due pagine (creanews.php, dove c è il modulo da compilare, e inseriscinews.php, dove il server andrà a salvare i dati ricevuti da creanews nel database) qualsiasi utente potrà creare delle news. Passiamo alla loro visualizzazione. L utente, lato client, vuole leggere tutte le news presenti. Si collegherà quindi a legginews.php. All interno del codice ci saranno le istruzioni necessarie affinché il server si colleghi al database mysql, richieda tutte le news, e le stampi nella pagina. Possiamo così avere automaticamente tutte le news stampate nella pagina. Creando questi 3 file e avendo a disposizione un database mysql, potremo inserire e leggere infinite news. Se nel database inseriamo per esempio anche la data di creazione della news potremo interrogare il database richiedendo solo le news scritte negli ultimi 10 giorni, o tutte le news che contengano la parola astronauta, o tutte le news scritte da un determinato utente. Un database funziona per tabelle. Ogni database può contenere centinaia di tabelle con dati diversi che possono, volendo, essere incrociati. Per quello che vogliamo realizzare (inserimento di news) abbiamo unicamente bisogno di una tabella. Vediamola: ID Autore Data Oggetto Testo 1 DylanDog 02/feb/07 Incubo Ricordi? quando, secondo te, avevo fatto qualcosa di male, mi rinchiu 2 Paperino 03/feb/07 Paperone? Zio Paperone alzò gli occhi al soffitto, e sospirò ma si può lavorare 3 Rai News 06feb/07 Scoop Ciccio litiga con Nonna papera la quale vorrebbe licenziarlo per aver Questa è una classica tabella che possiamo trovare in un database mysql per la gestione di news. ID, Autore, Oggetto, Testo, Data sono i titoli di ogni colonna ai quali faremo riferimento per richiamare le news. Un altra tabella, con solo due colonne, possiamo averla per esempio gestire le statistiche del sito:

Statistica Pagine Visitate Accessi singoli Contatore 5643 456 Vediamo ora come possiamo modificare queste tabelle all interno del codice php per aggiungerci dei dati. Essendo il database mysql un server separato da quello che utilizziamo per eseguire codice php perché utilizza un protocollo differente dovremo prima connetterci, inserendo l indirizzo IP dell host, il nome utente e la password relativa al server. Assegneremo quindi ad una variabile un valore particolare che identifica la connessione ad un server mysql: $db = mysql_connect("nomehost","nomeutente","password"); Ogni server mysql può contenere più database, dovremo quindi selezionare il nome del database che vogliamo: $db = mysql_connect("nomehost","nomeutente","password"); mysql_select_db("nomedatabase"); Tutte queste informazioni (nomehost, nomeutente ecc) vengono date da chi ci fornisce il servizio. Ora siamo collegati al nostro database e possiamo fare ciò che vogliamo. La gestione del database può esser effettuata attraverso un tool, chiamato phpmyadmin, che ci permette di modificare e creare le tabelle. Per iniziare ad inserire le news dovremo quindi creare questa tabella, e lo possiamo fare su phpmyadmin, solitamente servizio messo a disposizione dal fornitore del servizio. Nel creare la tabella dovremo specificare il contenuto di ogni colonna, che essa sia una stringa, un valore intero, e ci dovremo comportare come fossero variabili da dichiarare. Quello che vogliamo fare ora, invece che gestire news, è gestire dei commenti che ogni studente può inserire riguardanti la cogestione di questi giorni: il concetto è lo stesso, ma invece che news, sono commenti. Per quello che vogliamo fare dovremo creare una tabella con 4 colonne: id, che identifica il numero del commento (campo fondamentale per poterle poi richiamare), autore, testo del commento, data di creazione del commento. Abbiamo chiamato la tabella commenti I campi li abbiamo nominati id, testo, autore, data. Per inserire un commento dovremo utilizzare la seguente sintassi: dopo esserci connessi al server mysql (vedi sopra) possiamo inserire all interno del codice php la query: mysql_query("insert INTO nometabella (campo1, campo2, campo3.) VALUES ('valore1, valore2, valore3 ); ", $db); NB: valore1, valore2 ecc che siano esse stringhe o variabili devono essere sempre tra apici. Dopo l inserimento della query dovremo inserire la variabile $db, che se guardate sopra, identifica la connessione a quel determinato server MySql.

Quindi: mysql_query("insert INTO commenti (autore, testo, data) VALUES ('$autore', '$testo', $time); ", $db); le variabili autore e testo possono provenire da una pagina precedente, inviate, per esempio, tramite il metodo POST. A $time viene assegnato il valore time() [ $time = time(); ], ora corrente espressa in numero di secondo passati dal primo gennaio del 1970 (?). ID, non inserito all interno dei campi, è un campo particolare che si autoincrementa man mano che inseriamo nuovi commenti. Fin ora abbiamo visto come inserire un commento. Per leggere tutti i commenti dovremo creare invece un nuovo file, riconnetterci al server mysql, ed eseguire la seguente richiesta: $db = mysql_connect("nomehost","nomeutente","password"); mysql_select_db("nomedatabase"); $risultato = mysql_query("select * FROM commenti ", $db); //seleziona tutti i dati contenuti nella tabella commenti Più complesso è ora capire come stampare tutti i commenti. La cosa può essere fatta sfruttando un ciclo while e una particolare funzione di php per gestire le tabelle mysql: Ad ogni ciclo alla variabile $row, che è un array di valori con tutti i campi della tabella commenti, verranno assegnati i valori di una determinata riga della tabella: while ($row = mysql_fetch_array($risultato)) { echo Commento numero.$row[id]. :.$row[autore]: <br />; Questo ciclo si ripete per tutte le righe contenute nella nostra tabella. Attraverso la variabile $row possiamo all interno del ciclo richiamare i singoli campi (autore, testo ecc). Per farlo dovremo inserire all interno delle parentesi quadre il nome del campo: $row[testo], $row[autore] ecc. Conoscendo l html sarà possibile creare strutture più complesse, come tabelle e altre strutture. Alla fine quindi: $db = mysql_connect("nomehost","nomeutente","password"); mysql_select_db("nomedatabase"); $risultato = mysql_query("select * FROM commenti ", $db); //seleziona tutti i dati contenuti nella tabella commenti while ($row = mysql_fetch_array($risultato)) { echo Commento numero.$row[id]. :.$row[autore]: <br />; //stampa tutti i commenti inseriti nella tabella MySql ha un vastissimo campo di applicazione, e quello esposto qui è solo una minima punta di un iceberg. Fate riferimento alle guide di html.it per avere maggiori dettagli sull utilizzo dei database.