Elaborazione dei moduli PHP
- Pagina precedente Variabili superglobali PHP
- Pagina successiva Validazione 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>
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>
"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!
- Pagina precedente Variabili superglobali PHP
- Pagina successiva Validazione dei moduli PHP