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.










