Gli ultimi tutorial di sviluppo web
 

PHP Manipolazione 5 Forma


Il PHP superglobals $ _GET e $ _POST vengono utilizzati per raccogliere form-data.


PHP - Un Modulo HTML semplice

L'esempio seguente mostra un semplice modulo HTML con due campi di input e un pulsante di invio:

Esempio

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Esempio Run »

Quando l'utente compila il modulo qui sopra e fa clic sul pulsante di invio, i dati del modulo viene inviato per l'elaborazione di un file PHP chiamato "welcome.php" . I dati modulo viene inviato con il metodo POST HTTP.

Per visualizzare i dati presentati si potrebbe semplicemente eco tutte le variabili. Il "welcome.php" si presenta così:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

L'uscita potrebbe essere qualcosa di simile a questo:

Welcome John
Your email address is [email protected]

Lo stesso risultato potrebbe essere ottenuta anche utilizzando il metodo GET HTTP:

Esempio

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>
Esempio Run »

e "welcome_get.php" si presenta così:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

Il codice di cui sopra è molto semplice. Tuttavia, la cosa più importante è che manca. È necessario convalidare i dati del modulo per proteggere il vostro script da codice dannoso.

Pensate SICUREZZA durante l'elaborazione di forme di PHP!

Questa pagina non contiene alcuna validazione dei form, che dimostra quanto è possibile inviare e recuperare i dati del modulo.

Tuttavia, le pagine successive mostreranno come elaborare forme di PHP con la sicurezza in mente! convalida corretta dei dati del modulo è importante proteggere il modulo da hacker e spammer!


GET vs POST

Sia GET e POST creare un array (ad esempio array( key => value, key2 => value2, key3 => value3, ...) ). Questo array contiene coppie chiave / valore, in cui le chiavi sono i nomi dei controlli di modulo e valori sono i dati di ingresso da parte dell'utente.

Sia GET e POST sono trattati come $ _GET e $ _POST. Questi sono superglobals, il che significa che sono sempre accessibili, indipendentemente dal campo d'applicazione - ed è possibile accedervi da qualsiasi funzione, classe o file senza dover fare nulla di speciale.

$ _GET è un array di variabili passate allo script corrente tramite i parametri URL.

$ _POST è un array di variabili passate allo script corrente tramite il metodo HTTP POST.


Quando usare GET?

Le informazioni inviate da un form con il metodo GET è visibile a tutti (tutti i nomi ei valori delle variabili vengono visualizzati nella URL). GET ha anche limiti sulla quantità di informazioni da inviare. La limitazione è di circa 2000 caratteri. Tuttavia, perché le variabili sono visualizzate nella URL, è possibile memorizzare la pagina. Questo può essere utile in alcuni casi.

GET può essere utilizzato per l'invio di dati non sensibili.

Note: GET MAI dovrebbe essere utilizzato per l'invio di password o altre informazioni sensibili!


Quando usare POST?

Le informazioni inviate da un modulo con il metodo POST è invisibile per gli altri (all names/values are embedded within the body of the HTTP request) e non ha limiti sulla quantità di informazioni da inviare.

Inoltre POST supporta funzionalità avanzate come il supporto per ingresso binario più parti durante il caricamento dei file sul server.

Tuttavia, perché le variabili non vengono visualizzati nella URL, non è possibile memorizzare la pagina.

Gli sviluppatori preferiscono POST per inviare dati del modulo.

Avanti, vediamo come possiamo elaborare forme di PHP il modo sicuro!