PHP/Programmazione/Variabili globali/$ POST

Indice del libro

$_POST (o $HTTP_POST_VARS se la versione PHP è inferiore alla 4.1.0) è una delle variabili predefinite di sistema.

In sostanza è un array associativo di chiavi e valori i cui elementi sono rappresentati da tutti i campi passati allo script da un form con method impostato a POST e dai rispettivi valori; il suo funzionamento è quindi simile a $_GET ma i valori non sono passati nella querystring ma tramite il response HTTP.

Utilizzo

modifica

È possibile accedere agli elementi di questo array iterando su di essi con un ciclo foreach oppure reperire il singolo valore di un elemento se ne conosciamo la chiave, ad esempio:

$_POST[chiave]

L'accesso alle variabili potrà essere fatto anche come array semplice: $_POST[0] - purché ci si ricordi a cosa corrisponde nel form chiamante.

Ad esempio, supponiamo che in una determinata pagina vi sia un form con il metodo POST e due campi di input, uno chiamato userid (name="userid") ed uno chiamato pwd.

La pagina che verrà chiamata dalla form potrà accedere al valore delle variabili attraverso l'array associativo $_POST: cioè, $_POST["userid"] ci permetterà di accedere al valore della stringa scritta nel campo corrispondente, e lo stesso per quanto riguarda il campo pwd. L'accesso alle variabili potrà essere fatto anche come array semplice: $_POST[0], anche se questo metodo rende il codice più oscuro.

Nelle versioni a partire dalla 4.3 l'uso delle variabili globali nelle form è stato gestito in maniera automatica; ad esempio, se la form chiamante ha un campo chiamato userid, la pagina chiamata potrà utilizzare direttamente la variabile $userid ed in essa si troverà il valore corrispondente. Questo utilizzo è tuttavia sconsigliato soprattutto per motivi di sicurezza.

Un esempio è quello di un form per un login contenente un campo id e un campo pwd e con METHOD="POST"

Nella pagina di arrivo del modulo sarà quindi possibile eseguire una query al database contenente gli userID e le password, così da verificare se esiste o meno un utente con tali caratteristiche.