Modulo di registrazione PHP utilizzando metodi GET e POST con esempio
⚡ Riepilogo intelligente
La gestione dei moduli in PHP acquisisce l'input dell'utente dai moduli HTML e lo elabora sul server tramite le superglobali $_POST e $_GET. Questa guida illustra la creazione di un modulo di registrazione, spiega i metodi POST e GET, li confronta e mostra come elaborare campi, caselle di controllo e input di ricerca.

Cos'è la Forma?
Quando accedi a un sito web o alla tua casella di posta elettronica, interagisci con un modulo.
I moduli vengono utilizzati per ottenere input dall'utente e inviarli al server Web per l'elaborazione.
Il diagramma seguente illustra il processo di gestione del modulo.
Un modulo è un tag HTML che contiene elementi grafici dell'interfaccia utente, come caselle di input, caselle di controllo, pulsanti di opzione e altro ancora.
Il modulo è definito utilizzando il … I tag e gli elementi dell'interfaccia utente vengono definiti utilizzando elementi del modulo come l'input.
Quando e perché utilizziamo i moduli?
- I moduli sono utili quando si sviluppaping Applicazioni flessibili e dinamiche che accettano input dall'utente.
- È possibile utilizzare i moduli per modificare i dati già presenti nel database.
Crea un modulo
Utilizzeremo i tag HTML per creare un modulo. Di seguito è riportato l'elenco minimo delle cose necessarie per creare un modulo.
- Tag di apertura e chiusura del modulo …
- Tipo di invio del modulo POST o GET
- Presentazione URL che elaborerà i dati inviati
- Campi di input come caselle di testo, aree di testo, pulsanti, caselle di controllo e simili.
Il codice seguente crea un semplice modulo di registrazione.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
Visualizzando il codice soprastante in un browser web viene visualizzato il seguente modulo.
QUI,
- … sono i tag del modulo di apertura e chiusura
- action=”registration_form.php” method=”POST” specifica la destinazione URL e il tipo di invio.
- Nome/Cognome: sono etichette per le caselle di input
- sono tag di casella di input
- è il tag della nuova riga
- è un valore nascosto che viene utilizzato per verificare se il modulo è stato inviato o meno
- è il pulsante che, una volta cliccato, invia il modulo al server per l'elaborazione
Invio dei dati del modulo al server
L'attributo azione del modulo specifica l'invio URL che elabora i dati. L'attributo method specifica il tipo di invio.
Metodo PHP POST
- Si tratta della variabile array superglobale integrata di PHP utilizzata per ottenere i valori inviati tramite il metodo HTTP POST.
- È possibile accedere alla variabile array da qualsiasi script nel programma; ha una portata globale.
- Questo metodo è ideale quando non si desidera visualizzare i valori del modulo inviato nel URL.
- Un buon esempio di utilizzo del metodo POST è l'invio delle credenziali di accesso al server.
La sintassi è la seguente.
<?php
$_POST['variable_name'];
?>
QUI,
- “$_POST[…]” è il matrice PHP
- “'variable_name'” è il nome del campo del modulo.
Metodo GET PHP
- Si tratta della variabile array superglobale predefinita di PHP, utilizzata per ottenere i valori inviati tramite il metodo HTTP GET.
- È possibile accedere alla variabile array da qualsiasi script nel programma; ha una portata globale.
- Questo metodo visualizza i valori del modulo nel URL.
- È ideale per i moduli dei motori di ricerca in quanto consente agli utenti di aggiungere i risultati ai segnalibri.
La sintassi è la seguente.
<?php
$_GET['variable_name'];
?>
QUI,
- “$_GET[…]” è l'array PHP
- “'variable_name'” è il URL nome della variabile.
Metodi GET e POST
| POST | GET |
|---|---|
| Valori non visibili nel URL | Valori visibili nel URL |
| Non vi è alcuna limitazione sulla lunghezza dei valori poiché vengono inviati tramite il corpo della richiesta HTTP | Ha una limitazione sulla lunghezza dei valori, solitamente 255 caratteri. Questo perché i valori vengono visualizzati nel URLSi noti che il limite massimo di caratteri dipende dal browser. |
| Presenta prestazioni inferiori rispetto al metodo GET a causa del tempo impiegato per incapsulare i valori POST nel corpo HTTP. | Ha prestazioni superiori rispetto al metodo POST grazie alla semplicità di aggiunta dei valori nel URL. |
| Supporta molti tipi di dati diversi, come stringhe, numeri, binari e altro ancora. | Supporta solo tipi di dati stringa perché i valori vengono visualizzati nel URL |
| I risultati non possono essere aggiunti ai segnalibri. | I risultati possono essere aggiunti ai segnalibri grazie alla visibilità dei valori nel URL |
Il diagramma seguente mostra la differenza tra GET e POST.
Elaborazione dei dati del modulo di registrazione
Il modulo di registrazione invia i dati a se stesso come specificato nell'attributo azione del modulo.
Quando un modulo viene inviato, i valori vengono inseriti nell'array superglobale $_POST.
Utilizzeremo la funzione isset PHP per verificare se i valori del modulo sono stati compilati nell'array $_POST ed elaborare i dati.
Modificheremo il modulo di registrazione per includere il codice PHP che elabora i dati. Di seguito è riportato il codice modificato.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
QUI,
- Controlla se il campo nascosto form_submitted è stato compilato nell'array $_POST[] e visualizza un messaggio di ringraziamento e il nome. Se il campo form_submitted non è stato compilato nell'array $_POST[], viene visualizzato il modulo.
Altri esempi
Motore di ricerca semplice
Progetteremo un semplice motore di ricerca che utilizza il metodo GET di PHP come tipo di invio del modulo.
Per semplicità useremo a Istruzione if in PHP per determinare l'output.
Utilizzeremo lo stesso codice HTML per il modulo di registrazione sopra e apporteremo modifiche minime.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Visualizza la pagina qui sopra in un browser web.
Verrà visualizzato il seguente modulo.
Digita GET in lettere maiuscole, quindi fai clic sul pulsante Invia.
Di seguito verrà mostrato quanto segue.
Il diagramma sottostante mostra URL per i risultati sopra riportati.
Notare la URL ha visualizzato il valore di search_term e form_submitted. Prova a inserire qualcosa di diverso da GET, poi fai clic sul pulsante Invia e vedi quali risultati ottieni.
Lavorare con caselle di controllo, pulsanti di scelta
Se l'utente non seleziona una casella di controllo o un pulsante di opzione, non viene inviato alcun valore. Se l'utente seleziona una casella di controllo o un pulsante di opzione, viene inviato il valore uno (1) o true.
Modificheremo il codice del modulo di registrazione e includeremo un pulsante di controllo che consenta all'utente di accettare i termini di servizio.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Visualizza il modulo qui sopra in un browser.
Inserisci nome e cognome.
Si noti che la casella di controllo Accetta i Termini di servizio non è stata selezionata.
Clicca sul pulsante di invio.
Otterrai i seguenti risultati.
Fai clic sul collegamento "Torna al modulo", quindi seleziona la casella di controllo.
Clicca sul pulsante di invio.
Otterrai i seguenti risultati.










