Elaborazione dei moduli PHP

Le variabili superglobali $_GET e $_POST di PHP vengono utilizzate per raccogliere i dati del modulo (form-data).

PHP - Un semplice modulo HTML

Esempio di un semplice modulo HTML che contiene due campi di input e un pulsante di invio:

Esempio

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

Esegui l'esempio

Quando l'utente compila questo modulo e clicca sul pulsante di invio, i dati del modulo vengono inviati al file PHP chiamato "welcome.php" per essere elaborati. I dati del modulo vengono inviati tramite il metodo HTTP POST.

Per visualizzare i dati inviati, puoi semplicemente stampare (echo) tutte le variabili. Il file "welcome.php" è così:

<html>
<body>
Benvenuto <?php echo $_POST["name"]; ?><br>
Il tuo indirizzo email è: <?php echo $_POST["email"]; ?>
</body>
</html>

Output:

Benvenuto Bill
Il tuo indirizzo email è Bill.Gates@example.com

Puoi ottenere lo stesso risultato utilizzando il metodo HTTP GET:

Esempio

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

Esegui l'esempio

"welcome_get.php" è così:

<html>
<body>
Benvenuto <?php echo $_GET["name"]; ?><br>
Il tuo indirizzo email è: <?php echo $_GET["email"]; ?>
</body>
</html>

Il codice sopra è semplice. Tuttavia, il contenuto più importante è stato omesso. Devi validare i dati del modulo per prevenire le vulnerabilità dello script.

Attenzione:Fai attenzione alla sicurezza quando gestisci moduli PHP!

Questa pagina non include alcun programma di validazione del modulo, ma ci mostra come inviare e ricevere dati di modulo.

Ma i capitoli successivi ti spiegheranno come migliorare la sicurezza dei moduli PHP! E' molto importante eseguire una validazione adeguata dei moduli per proteggere contro gli attacchi degli hacker e lo spam.

GET vs. POST

GET e POST creano entrambi un array (ad esempio, array(key => value, key2 => value2, key3 => value3, ...)). Questo array contiene coppie chiave/valore, nella quale la chiave è il nome del controllo del modulo e il valore è i dati di input forniti dall'utente.

GET e POST sono considerati $_GET e $_POST. Sono variabili superglobali, il che significa che l'accesso a esse non richiede considerazione dello scope - non è necessario alcun codice speciale, è possibile accedervi da qualsiasi funzione, classe o file.

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

$_POST è un array di variabili passato allo script corrente tramite HTTP POST.

Quando utilizzare GET?

Informazioni inviate tramite metodo GETVisibile a tutti(Tutti i nomi delle variabili e i valori sono visibili nell'URL). GET ha anche limiti sul numero di informazioni inviate. Il limite è circa 2000 caratteri. Tuttavia, poiché le variabili sono visibili nell'URL, è più facile aggiungere la pagina ai segnalibri.

GET può essere utilizzato per inviare dati non sensibili.

Commento:Non utilizzare mai GET per inviare password o altre informazioni sensibili!

Quando utilizzare POST?

Informazioni inviate tramite metodo POSTè invisibile agli altriTutti i nomi/valori vengono allogati nel corpo della richiesta HTTP), e anche il numero di informazioni inviateIllimitato.

Inoltre POST supporta funzionalità avanzate, come l'input multi-part binario durante l'upload di file al server.

Tuttavia, poiché le variabili non sono visualizzate nell'URL, non è possibile aggiungere la pagina ai segnalibri.

Suggerimento:Gli sviluppatori preferiscono POST per inviare dati dei moduli.

Ora vediamo come gestire in modo sicuro i moduli PHP!