PHP Ottieni dati modulo tramite POST e GET

In molte applicazioni, è necessario recuperare i dati immessi dall'utente da una forma di qualche tipo. Ecco alcuni metodi per farlo con PHP.

Stai costruendo un sito Web per i volontari per iscriversi con un nome e un indirizzo email per un progetto. Hai un semplice modulo in cui gli utenti inseriscono i loro nomi e indirizzi email. Cosa succede quando fanno clic su Invia su questo modulo? Non succede niente se si usa un semplice HTML vecchio. L'HTML non può fare nulla di per sé. Dobbiamo farlo funzionare con la potenza di PHP.

Recupero dell'input da un modulo HTML è una competenza di base di PHP che tutti devono sapere dal momento che un'enorme porzione di qualsiasi applicazione web tratta i moduli in un modo o nell'altro (ad esempio moduli di accesso, moduli di registrazione, moduli di configurazione, moduli di posta elettronica, ecc.) .

$ _GET e $ _POST

Abbiamo due variabili predefinite in PHP che vengono utilizzate per ottenere dati da un modulo HTML. Questi sono $ _GET e $ _POST. Potresti aver visto questi in un modulo HTML. Il tag del modulo di apertura avrà un attributo chiamato "get" o "post". Nota il seguente esempio:



In questo elemento di modulo HTML, gli diamo un attributo di metodo di GET. Questo significa che, per recuperare i dati da questo modulo, dobbiamo utilizzare la variabile $ _GET in PHP. D'altra parte, se usiamo method =”post” dovremmo usare la variabile $ _POST. Qual è la differenza? Come otteniamo effettivamente i dati?

$ _GET

Per utilizzare il metodo GET, configureremmo il nostro modulo come nell'esempio seguente con il set "get" come attributo del metodo.



Nome:
Numero:


Si noti che abbiamo dato a ogni campo del modulo a nome attributo. Questo è necessario in quanto dobbiamo essere in grado di indirizzare ogni campo. Diamo anche a ogni campo modulo un nome significativo. Ora, quando l'utente fa clic su Invia, cosa succede?

L'attributo action specifica un altro file sul server in cui vengono inviati i dati del modulo. Pertanto, la parte PHP effettiva non viene eseguita nella stessa pagina del modulo (sebbene possa essere). In genere, viene eseguito su un altro file. Nel caso precedente, quando l'utente fa clic su Invia, i dati del modulo vengono inviati al file process.php.

Nel file process.php, avremmo il seguente codice:

  

Vedrai che creo due nuove variabili per memorizzare i valori dal mio modulo ($ name e $ number). Impostiamo queste variabili uguali a qualunque cosa sia nel campo modulo che ha il nome "fName" e "numero".


$ _GET [ "fName"];
$ _GET [ "numero"];

Pertanto, prendiamo i valori dal nostro modulo appena compilato dai campi specificati dalla nostra variabile $ _GET e li inseriamo in due nuove variabili. Quindi, riecheggiamo le variabili che abbiamo creato per visualizzare un messaggio sulla pagina di azione.

La mia pagina modulo HTML:

Quindi, quando faccio clic su Invia, (nota l'url):

Questa è la differenza tra GET e POST. Con il metodo GET, le nostre variabili vengono aggiunte all'URL della pagina di elaborazione. Immagina se stavi ricevendo un campo password da un utente, ed è stato visualizzato nell'URL. Questo è il motivo per cui l'utilizzo di GET per recuperare informazioni utente sensibili non è generalmente una buona idea. Questo è anche il motivo per cui si dovrebbe guardare al POST per l'invio di informazioni sensibili (ad es. Password utente, e-mail, ecc.).

$ _POST

Usiamo la variabile POST nello stesso modo esatto del GET. L'unica differenza è che le nostre informazioni sono nascoste all'utente, non visualizzate nell'URL. Inoltre non avremo limiti sulla quantità di dati che è possibile inviare (per moduli molto grandi).

Per cambiare il tuo metodo nel modulo su POST, usa quanto segue:


Nome:
Numero:

Per modificare le variabili nella pagina process.php su POST, utilizzare quanto segue:

  

Usando $ post, quando fai clic su Invia, le tue variabili non vengono visualizzate nell'URL: