giovedì 2 settembre 2010

PHP: recuperare i parametri da un form

Il passaggio di informazioni dal client al server può avvenire attraverso due metodi (ormai noti): GET e POST. Il metodo GET passa le eventuali informazioni al server attraverso l'url, accodandole all'indirizzo della pagina richiesta!
La regola usata anche in altri linguaggi di scripting e tecnologie per il web è la seguente: la query string (così viene detta la stringa con i parametri da passare al server) viene fatta seguire all'url della pagina, separata da quest'ultimo con il carattere ? Ogni nome e valore di variabile viene quindi aggiunto nella query string osservando la seguente sintassi: nome_variabile=valore, più valori sono poi separati tra loro dal carattere &. Ad esempio, l'indirizzo:
http://mio_sito/pagina.php?variabile1=valore1&variabile2=valore2
accede alla pagina pagina.php del mio_sito passando i valori delle variabili: variabile1 e variabile2. PHP memorizza la query string nell'array $_GET, le cui chiavi sono i nomi delle variabili passate. Pertanto, con l'istruzione $_GET['variabile1'] si accede al valore della variabile1 (che è valore1).
Alla semplicità e alla vulnerabilità del metodo GET (che usa una query string visibile nella barra degli indirizzi del browser, inadeguato dunque per la comunicazione di informazioni sensibili) pone rimedio il metodo POST che trasmette i nome ed i valori delle variabili in un header (a parte) della richiesta http. PHP usa per il metodo POST l'array $_POST, indicizzato anche in questo caso con i nomi delle variabili. Come prima, con l'istruzione $_POST['variabile1'] accediamo a valore1. Di seguito mostro due screen shot di un form per la registrazione, prima di inviare i dati:

e dopo l'invio dei dati:

Con le istruzioni: $_POST['user'], $_POST['password'], $_POST['sesso'] e $_POST['ruolo'] accedo rispettivamente al nome utente, alla password, al sesso e al ruolo inviato dall'utente. I nomi di tali campi dati sono stati precedentemente assegnati al form (la prima immagine) sicché attraverso la request riesco adesso a intercettarne i valori!

Nessun commento:

Posta un commento