MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.a HTTP request e HTTP response (form e link)



Похожие документы
04/05/2011. Lezione 6: Form

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

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

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

DURANTE LA NAVIGAZIONE NEI SITI WEB I VISITATORI NON SOLO POSSONO CONSULTARE INFORMAZIONI STATICHE

Interazione con l utente : i moduli.

Lezione 6: Form 27/04/2012

Il linguaggio HTML - Parte 3

Dott.ssa Adriana Pietramala

ESEMPI DI FORM (da

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

I Tag dell html. Parte quarta

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

19. LA PROGRAMMAZIONE LATO SERVER

Lezione nr. 5. Per creare un modulo è necessario avere delle conoscenze di base del linguaggio HTML. Niente di difficile ovviamente!

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

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

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Sicurezza Protezioni in una pagina Web

Obiettivo dell esercitazione

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

Lezione III: Oggetti ASP e interazione tramite form HTML

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

Come funziona internet

HTML e interattività FORM

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

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

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

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

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

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Interfaccia di base di GroupWise WebAccess

Il Protocollo HTTP e la programmazione di estensioni Web

Progettazione Web Applicazioni client-server

1. ACCESSO AL PORTALE easytao

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

BASI DI DATI Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL

POSTECERT POST CERTIFICATA GUIDA ALL USO DELLA WEBMAIL

FORMMAIL.pl. E'presentata una lista dei campi che possono essere utilizzati all'interno della form: CAMPO NECESSARIO DA INSERIRE NELLA FORM

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

- introduzione - il linguaggio di scripting - interazione con gli oggetti. - interazione con DB - gestione delle sessioni

Creare un sito Multilingua con Joomla 1.6

Applicazione ASP di esempio

Guida all uso del servizio

Linguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML

Guida alla registrazione on-line di un DataLogger

Alla base del web: il protocollo HTTP

ALCUNI ESEMPI DI DATI 6,28 numerico costante

GUIDA GENERALE ALL USO DEL NUOVO SITO WEB

Realizzare una piccola chat in php senza database

PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN

PHP e MySQL. Guida scaricata da

Manuale Utente Albo Pretorio GA

Dexma Newsletter System

Esercitazione 8. Basi di dati e web

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

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

GUIDA AL PRONTUARIO MOBILE

Come fare per. Richiesta certificato anagrafico con timbro digitale

Leggere un messaggio. Copyright 2009 Apogeo

NUOVA PROCEDURA DI RESET PASSWORD AUTOMATICA

MANUALE UTENTE PROTEUS GRPIGD - GESTIONE RICHIESTE PROTOCOLLO INFORMATICO E GESTIONE DOCUMENTALE

Appunti su ASP (Active Server Pages)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

GUIDA UTENTE PRIMA NOTA SEMPLICE

GUIDA UTENTE BILLIARDS COUNTER (Vers )

PANNELLO DI CONTROLLO

INFN Sezione di Perugia Servizio di Calcolo e Reti Fabrizio Gentile Enrico Becchetti

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

LA PIATTAFORMA DEL PROGETTO ORIENTAMENTO. Guida per Studente

MANUALE PARCELLA FACILE PLUS INDICE

Manuale LiveBox WEB ADMIN.

Sicurezza Informatica: Tecniche di SQL INJECTION

Guida iscrizione Community. istruzione.social.marche.it

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

VIVAIO LAUDENSE RELAZIONE

MUSEO&WEB. un area riservata (OTEBAC) Roma, 15 giugno 2010

PANNELLO DI CONTROLLO

Esercizi su HTML e JavaScript

AJAX. Goy - a.a. 2006/2007 Servizi Web 1. Cos'è il Web 2.0

Manuale LiveBox WEB ADMIN.

Configurazione di un nuovo account di posta in Outlook Express

Spazio Commerciale. Le tue vendite, il nostro successo. Manuale Operativo. Guida inserimento articoli tramite Area di amministrazione.

Esercizi di JavaScript

La posta elettronica (mail)

Calcolare il massimo di una lista

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per

Programma Gestione Presenze Manuale autorizzatore. Versione /08/2010. Area Sistemi Informatici - Università di Pisa

Siti interattivi e dinamici. in poche pagine

PORTALE CLIENTI Manuale utente

Транскрипт:

MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.a HTTP request e HTTP response (form e link) Goy - a.a. 2009/2010 Programmazione Web 1 Gli oggetti HTTP request e HTTP response -I Vi ricordate? Un HTTP Server gestisce 2 flussi di informazioni: HTTP request: le richieste in arrivo dai client HTTP response: le risposte del server, inviate ai client In particolare... L'oggetto HTTP request contiene tutte le informazioni relative alla richiesta che il client (browser) fa al server: l'indicazione di un URL (o di una pagina) + eventuali dati L oggetto HTTP response contiene varie informazioni che il server invia, in risposta, al client (codice di stato del server, eventuali metadati,... nello Header e contenuto - per es. la pagina web richiesta -nel Body) Goy - a.a. 2009/2010 Programmazione Web 2 1

Gli oggetti HTTP request e HTTP response -II Server request response client Gliscriptserver-side server-side possono interagire con vari "oggetti", tra cui HTTP request e HTTP response Per esempio, l'oggetto HTTP request contiene tutte le informazioni relative alla richiesta che il client (browser) fa al Web server Per es: l'utente compila un modulo on-line (form HTML); quando clicca sul pulsante di invio del modulo,,p parte la richiesta al server; l'oggetto request conterrà varie informazioni relative alla richiesta del client, tra cui tutti i dati del modulo (per es: i nomi dei campi e i rispettivi valori) L'oggetto response viene utilizzato dal Web server per inviare informazioni al client (browser) Goy - a.a. 2009/2010 Programmazione Web 3 PHP: l oggetto HTTP response -I Web Server HTTP request HTTP response browser p echo "Hello!"; print "Ciao!"; echo e print scrivono nel Body dell'oggetto HTTP response NOTA: echo e print sono equivalenti: l'unica differenza è che echo funziona anche con più stringhe (separate da una virgola: echo "pippo", "pluto",...) NB: Non sono vere e proprie funzioni, per questo le parentesi non sono obbligatorie Goy - a.a. 2009/2010 Programmazione Web 4 2

PHP: l oggetto HTTP response -II Digressione su HTTP response Nelle pagine PHP è possibile intervallare linee di script e linee di codice HTML, per es: if ($_POST[ POST["risposta"]=="si") si { <P ALIGN="CENTER">Bravo!</P> else { <P ALIGN="CENTER">Peccato!</P> oppure (equivalentemente) utilizzare echo per scrivere HTML: if ($_POST["risposta"]=="si") { echo "<P ALIGN='CENTER'>Bravo!</P>" else { echo "<P ALIGN='CENTER'>Peccato!</P>" Goy - a.a. 2009/2010 Programmazione Web 5 PHP: l oggetto HTTP response - III NOTA: Attenzione agli apici!!! HTML: <P ALIGN="CENTER">CONGRATULAZIONI!</P> PHP: echo "<P ALIGN='CENTER'>OK!</P>"; oppure echo "<P ALIGN=\"CENTER\">OK!</P>"; Goy - a.a. 2009/2010 Programmazione Web 6 3

Ripasso di HTML: <form...> -I In HTML, un form o modulo on-line (tag <form...>) contiene: 1. metodo (attributo METHOD del tag <FORM...>) = modo in cui vengono codificati i dati da inviare al server 2. campi di input (tag <INPUT...> e altri) = elementi attraverso cui l'utente fornisce dei dati 3. azione (attributo ACTION del tag <FORM...>) = script (o programma) che "raccoglie" ed "elabora" i dati contenuti nel form Goy - a.a. 2009/2010 Programmazione Web 7 Ripasso di HTML: <form...> -II Come funziona un form? <HTML><BODY> <FORM METHOD="POST" ACTION="identif.php" > Login: <INPUT TYPE="TEXT" NAME="login"/> Password: <INPUT TYPE="PASSWORD" NAME="pwd"/> <INPUT TYPE="Submit" VALUE="OK"/> </FORM> </BODY></HTML> Quando l'utente fa click sul pulsante inviato al server... cosa vuol dire? il modulo viene Goy - a.a. 2009/2010 Programmazione Web 8 4

Ripasso di HTML: <form...> - III Viene costruita una HTTP request che contiene: l'indicazione della risorsa (per es. pagina PHP) che contiene il programma (per es. lo script PHP) che "gestirà" i dati (attributo ACTION) i dati (parametri), nella forma di coppie <nome, valore> (tag <INPUT...> e altri), codificati secondo il metodo prescelto (attributo METHOD) Nell'esempio precedente, HTTP request contiene: risorsa = identif.php parametri: <login, admin> <pwd, pippo> NB nella form, tutti i campi (tag <INPUT...> e altri) sono caratterizzati da: nome = attributo NAME (o ID) del tag valore = ciò che l'utente ha scritto/selezionato Goy - a.a. 2009/2010 Programmazione Web 9 Ripasso di HTML: <form...> -IV Tipi di campi (tag <INPUT...>): Caselle di testo <INPUT TYPE="text" NAME="login"/> Caselle di testo per password <INPUT TYPE="password" NAME="pwd"/> Pulsanti di opzione (radio button) NB stesso nome! <INPUT TYPE="radio" NAME="accetto" value="si"/> <INPUT TYPE="radio" NAME="accetto" value="no"/> NB sono mutuamente esclusivi!!! Caselle di controllo (checkbox) NB stesso nome! <INPUT TYPE="checkbox" NAME="interessi[]" value="cinema"/> <INPUT TYPE="checkbox" NAME="interessi[]" value="teatro"/> NB non sono mutuamente esclusivi!!! devo "raccoglierli" in un array (interessi[])!!! Goy - a.a. 2009/2010 Programmazione Web 10 5

Ripasso di HTML: <form...> -V Campi nascosti <INPUT TYPE="hidden" NAME="utente" value="pippo"/> non vengono visualizzati nella pagina, ma vengono inclusi in HTTP request: <utente, pippo> Pl Pulsante diinvio i (submit) b <INPUT TYPE="submit" value="invia"/> Pulsante di reset <INPUT TYPE="reset" value="reset"/> NB Il tag <INPUT...> ha altri attributi opzionali, per esempio: <INPUT TYPE="text" NAME="login" value="pippo" size="4"/> <INPUT TYPE="checkbox" NAME="interessi" value="cinema" checked/> [NB checked checked="true"] Goy - a.a. 2009/2010 Programmazione Web 11 Ripasso di HTML: <form...> -V Inoltre, all'interno di un form è possibile usare Aree di testo <TEXTAREA NAME="msg" cols="20" row="5"></textarea> Caselle combinate (select) <SELECT NAME="job"> <option value="null"></option> <option value="imp">impiegato</option> <option value="ins">insegnante</option> </select> Goy - a.a. 2009/2010 Programmazione Web 12 6

PHP: l oggetto HTTP request I All'interno di HTTP request i dati (parametri) possono essere codificati in due modi diversi (attributo METHOD del tag <FORM...>): GET: i dati (parametri), cioè le coppie <nome, valore>,, sono scritti in coda alla risorsa saranno quindi visibili nell'url (nella barra degli indirizzi del browser) Nell'esempio, HTTP request contiene: risorsa = identif.php?login=admin&pwd=pippo POST: i dati (parametri), cioè le coppie <nome, valore>, sono scritti all'interno del corpo di HTTP request non saranno quindi visibili ibili nella barra degli indirizzi i i del browser Nell'esempio, HTTP request contiene: risorsa = identif.php parametri: <login, admin> <pwd, pippo> Goy - a.a. 2009/2010 Programmazione Web 13 PHP: l oggetto HTTP request II Come faccio (dallo script contenuto nella pagina PHP indicata nell'attributo ACTION del tag <FORM...>) a leggere i parametri contenuti in HTTP request? I parametri sono resi disponibili a PHP all'interno di due array associativi: i i $_GET[] e $_POST[]. In particolare: se il metodo utilizzato è GET, i parametri sono memorizzati nell'array associativo $_GET[] se il metodo utilizzato è POST, i parametri sono memorizzati nell'array associativo $_POST[] login pwd... chiavi admin pippo... valori $_GET["login"] "admin" $_GET["pwd"] "pippo" "... oppure $_POST["login"] "admin" $_POST["pwd"] "pippo"... Goy - a.a. 2009/2010 Programmazione Web 14 7

PHP: l oggetto HTTP request III NB1 Il nome del parametro in HTTP request, e quindi la chiave all'interno dell'array $_GET[] o $_POST[], è dato dal valore dell'attributo NAME nel tag <INPUT...> (o <TEXTAREA...> o <SELECT...>): ) <FORM METHOD="POST"...> <INPUT TYPE="text" NAME="login"/> $_POST["login"] NB2 Visto che, utilizzando il metodo GET, i dati sono visibili nella barra degli indirizzi del browser, non usate GET per trasmettre password o dati sensibili! Goy - a.a. 2009/2010 Programmazione Web 15 PHP: l oggetto HTTP request IV NB3 Nel caso delle checkbox il parametro non è una semplice coppia <nome, valore>, ma un array che contiene tutti i valori selezionati dall'utente; per es: <FORM METHOD="POST"...> <INPUT TYPE="checkbox" NAME="interessi[]" value="cinema"/> <INPUT TYPE="checkbox" NAME="interessi[]" value="teatro"/> <INPUT TYPE="checkbox" NAME="interessi[]" value="musica"/> <INPUT TYPE="checkbox" NAME="interessi[]" value="sport"/> $_POST["interessi"] cinema teatro musica NB senza []!!! 0 1 2 L'array contiene solo le checkbox selezionate!!! Per leggere i valori selezionati dall'utente devo utilizzare un ciclo sull'array; in PHP, per esempio: $int = $_POST["interessi"]; foreach ($int as $i) { echo $i.", "; Goy - a.a. 2009/2010 Programmazione Web 16 8

PHP: l oggetto HTTP request V Esempio1: form per inviare login e password (es-form1.html) <FORM METHOD="POST" ACTION="identif1.php"> Login: <INPUT TYPE="TEXT" NAME="login"/> Password: <INPUT TYPE="PASSWORD" NAME="pwd"/> <INPUT TYPE="Submit" VALUE="OK"/>... </FORM> VEDI es-form1.html VEDI identif1.php Quando il server riceve la richiesta, chiede all'interprete PHP di eseguire lo script contenuto nella pagina indicata in HTTP request (identif1.php) $id = $_POST["login"]; $pass = $_POST["pwd"]; if ($id = = "admin" && $pass = = "pippo") pp { echo "Benvenuto amministratore!"; else { echo "Gentile ".$id.", login e password sono sbagliati..."; Goy - a.a. 2009/2010 Programmazione Web 17 PHP: l oggetto HTTP request VI VEDI es-form1.html VEDI identif1.php Nella cartella corsopw creiamo due nuovi file es-form1.html e identif1.php in cui inseriamo il form e lo script precedenti (oppure li scarichiamo da www.di.unito.it/~goy/corsopw-0910.html, esempi scripting server-side) side) Avviamo il Web client, cioè il browser, e ci connettiamo al web server, richiedendo la pagina es-form1.html; per fare ciò digitiamo nella barra degli indirizzi l'url (*) : http://localhost:8080/corsopw/es-form1.html Cliccando poi sul pulsante OK, partirà una HTTP request al server, contenente la richiesta per identif1.php e i parametri del form (*) A casa, senza :8080!!! Goy - a.a. 2009/2010 Programmazione Web 18 9

PHP: l oggetto HTTP request VII Esempio2: form di registrazione (es-form2.html) VEDI es-form2.html VEDI identif2.php <FORM METHOD="POST" ACTION="identif2.php" > Nome: <INPUT TYPE="TEXT" NAME="nome"/> Cognome: <INPUT TYPE="TEXT" NAME="cognome"/> Età: <SELECT NAME="eta"> <OPTION VALUE="meno20">meno di 20</OPTION> <OPTION VALUE="tra20e40">tra 20 e 40</OPTION> <OPTION VALUE="tra40e60">tra 40 e 60</OPTION> <OPTION VALUE="piu60">più di 60</OPTION> </SELECT> <INPUT TYPE="RADIO" NAME="sesso" VALUE="m"/> M <INPUT TYPE="RADIO" NAME="sesso" VALUE="f"/> F Interessi: <INPUT TYPE="CHECKBOX" NAME="interessi[]" VALUE="cinema"/> Cinema <INPUT TYPE="CHECKBOX" NAME="interessi[]" VALUE="teatro"/> Teatro <INPUT TYPE="CHECKBOX" NAME="interessi[]" VALUE="musica"/> Musica <INPUT TYPE="CHECKBOX" NAME="interessi[]" VALUE="sport"/> Sport <INPUT TYPE="Submit" VALUE="OK"/>... </FORM> Goy - a.a. 2009/2010 Programmazione Web 19 PHP: l oggetto HTTP request VIII VEDI es-form2.html VEDI identif2.php Quando il server riceve la richiesta, chiede all'interprete PHP di eseguire lo script contenuto nella pagina indicata in HTTP request (identif2.php) $n = $_POST[ POST["nome"]; $c = $_POST["cognome"]; $s = $_POST["sesso"]; $int = $_POST["interessi"]; echo "<P ALIGN='CENTER'>"; echo "<B>nome</B>: ".$n."<br>"; echo "<B>cognome</B>: ".$c."<br>"; echo "<B>sesso</B>: ".$s."<br>"; echo "<B>interessi</B>: "; foreach ($int as $i) { echo $i. ", "; echo "</P>"; Goy - a.a. 2009/2010 Programmazione Web 20 10

PHP: l oggetto HTTP request IX VEDI es-form2.html VEDI identif2.php Nella cartella corsopw creiamo due nuovi file es-form2.html e identif2.php in cui inseriamo il form e lo script precedenti (oppure li scarichiamo da www.di.unito.it/~goy/corsopw-0910.html, esempi scripting server-side) side) Avviamo il Web client, cioè il browser, e ci connettiamo al web server, richiedendo la pagina es-form2.html; per fare ciò digitiamo nella barra degli indirizzi l'url (*) : http://localhost:8080/corsopw/es-form2.html Cliccando poi sul pulsante OK, partirà una HTTP request al server, contenente la richiesta per identif2.php e i parametri del form (*) A casa, senza :8080!!! Goy - a.a. 2009/2010 Programmazione Web 21 PHP: l oggetto HTTP request X Esempio3: un diverso uso delle caselle di controllo (checkbox) (es-form3.html) Se, nel form, assegno nomi diversi alle caselle di controllo, posso sfruttare i nomi, anziché i valori... <FORM METHOD="POST" ACTION="identif3.php" " > Interessi: <INPUT TYPE="CHECKBOX" NAME="cinema"/> Cinema <INPUT TYPE="CHECKBOX" NAME="teatro"/> Teatro <INPUT TYPE="CHECKBOX" NAME="musica"/> Musica <INPUT TYPE="CHECKBOX" NAME="sport"/> Sport <INPUT TYPE="Submit" VALUE="OK"/>... </FORM> cosa viene scritto in $_POST? <cinema, ON> <teatro, ON> <musica, ON> (cioè solo le checkbox selezionate, con valore = ON) VEDI es-form3.html VEDI identif3.php Goy - a.a. 2009/2010 Programmazione Web 22 11

PHP: l oggetto HTTP request XI $_POST è un array associativo, in cui: chiavi = nomi del campi del modulo (form) valori = valori scritti/selezionati dall'utente array_ keys($ ($_ POST) nomi dei campi array_values($_post) valori $_POST array_values($_post) In identif3.php leggiamo le checkbox selezionate (e, in questo esempio, le stampiamo a schermo): echo "Interessi = "; foreach (array_keys($_post) as $campo) { echo $campo.", "; chiavi VEDI es-form3.html VEDI identif3.php NB Non fatelo con i pulsanti di opzione (radio button) altrimenti perdete la mutua esclusione!!! Goy - a.a. 2009/2010 Programmazione Web 23 PHP: l oggetto HTTP request XII VEDI es-form3.html VEDI identif3.php Nella cartella corsopw creiamo due nuovi file es-form3.html e identif3.php in cui inseriamo il form e lo script precedenti (oppure li scarichiamo da www.di.unito.it/~goy/corsopw-0910.html, esempi scripting server-side) side) Avviamo il Web client, cioè il browser, e ci connettiamo al web server, richiedendo la pagina es-form3.html; per fare ciò digitiamo nella barra degli indirizzi l'url (*) : http://localhost:8080/corsopw/es-form3.html Cliccando poi sul pulsante OK, partirà una HTTP request al server, contenente la richiesta per identif3.php e i parametri del form (*) A casa, senza :8080!!! Goy - a.a. 2009/2010 Programmazione Web 24 12

PHP: l oggetto HTTP request XIII Esempio4: accedere ai dati "senza chiamarli per nome" (es-form4.html, identif4.php) VEDI es-form4.html VEDI identif4.php <FORM METHOD="POST" ACTION="identif4.php" > Nome: <INPUT TYPE="TEXT" NAME="nome"/> Cognome: <INPUT TYPE="TEXT" NAME="cognome"/> Indirizzo: <INPUT TYPE="TEXT" NAME="indirizzo" SIZE="40"/> Telefono: <INPUT TYPE="TEXT" NAME="telefono"/> Professione: <SELECT NAME="prof"> <OPTION VALUE="impiegato">impiegato</OPTION> <OPTION VALUE="lav_aut">lavoratore autonomo</option> <OPTION VALUE="insegnante">insegnante</OPTION> <OPTION VALUE="altro">altro</OPTION> </SELECT> <INPUT TYPE="Submit" VALUE="OK"/>... </FORM> chiavi foreach (array_keys($_post) as $campo ) { echo "<P>". $campo. " = "; $valore = $_POST[$campo]; valori echo $valore. "</P> ; Goy - a.a. 2009/2010 Programmazione Web 25 PHP: l oggetto HTTP request XIV VEDI es-form4.html VEDI identif4.php Nella cartella corsopw creiamo due nuovi file es-form4.html e identif4.php in cui inseriamo il form e lo script precedenti (oppure li scarichiamo da www.di.unito.it/~goy/corsopw-0910.html, esempi scripting server-side) side) Avviamo il Web client, cioè il browser, e ci connettiamo al web server, richiedendo la pagina es-form4.html; per fare ciò digitiamo nella barra degli indirizzi l'url (*) : http://localhost:8080/corsopw/es-form4.html Cliccando poi sul pulsante OK, partirà una HTTP request al server, contenente la richiesta per identif4.php e i parametri del form (*) A casa, senza :8080!!! Goy - a.a. 2009/2010 Programmazione Web 26 13

PHP: include [digressione che ci sarà utile tra poco...] In una pagina PHP è possibile includere file contenenti parte del codice della pagina vengono spesso usati per inserire codice che verrà riutilizzato in altre pagine.php, come per es. intestazioni e piè di pagina, o connessioni a database Possono contenere codice HTML, script client-side (es: JavaScript), script server-side (es: PHP) Hanno generalmente l'estensione.php o.html o.inc Per includere un file : include("percorso/nomefile") nel punto in cui si vuole inserire il codice contenuto nel file esterno; l'interprete farà una specie di "copia&incolla" del contenuto del file incluso all'interno della pagina PHP Goy - a.a. 2009/2010 Programmazione Web 27 PHP: l oggetto HTTP request XV In alternativa ai form, è possibile inviare dati al server accodandoli all'url in un link (in questo caso i valori saranno "fissi"...); per esempio: es-param.php: include("quiz quiz.html html") quiz.html: <P ALIGN="CENTER"> Come si chiama il figlio di Tex? <BR><BR> <A HREF="param.php?risposta=alan">Alan</A> <BR> <A HREF="param.php?risposta=kit">Kit</A> <BR> <A HREF="param.php?risposta=john">John</A> </P> NB i dati sono inviati i con il metodo GET saranno disponibili nell'array associativo $_GET[] VEDI es-param.php VEDI quiz.html Goy - a.a. 2009/2010 Programmazione Web 28 14

PHP: l oggetto HTTP request XVI Lo script contenuto in param.php legge la risposta (il parametro "risposta"): se è sbagliata, ripropone il quiz; se è corretta gli invia un messaggio di congratulazioni... p $risp = $_GET["risposta"]; if ($risp = = "kit") { echo "<P ALIGN='CENTER'>CONGRATULAZIONI!</P>"; else { echo "<P ALIGN='CENTER'>Risposta sbagliata: riprova!</p>"; include("quiz.html"); VEDI param.php NB Se devo inviare più parametri, li separo con &, per es: <A HREF="param.php?utente=".$ut."&risposta=kit">Kit</A> (ipotizzando che la variabile $ut contenga l'id dell'utente...) Goy - a.a. 2009/2010 Programmazione Web 29 PHP: l oggetto HTTP request XVII VEDI es-param.php VEDI quiz.html VEDI param.php Nella cartella corsopw creiamo tre nuovi file es-param.php, quiz.html e param.php in cui inseriamo i link e gli script precedenti (oppure li scarichiamo da www.di.unito.it/~goy/corsopw-0910.html, it/~goy/corsopw esempi scripting server-side) Avviamo il Web client, cioè il browser, e ci connettiamo al web server, richiedendo la pagina es-param.php; per fare ciò digitiamo nella barra degli indirizzi l'url (*) : http://localhost:8080/corsopw/es-param.php Cliccando poi su uno dei link, partirà una HTTP request al server, contenente la richiesta per param.php e il parametro (*) A casa, senza :8080!!! Goy - a.a. 2009/2010 Programmazione Web 30 15