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.

  • ๐Ÿ“ A cosa servono i moduli: Un modulo HTML raccoglie l'input dell'utente tramite campi come caselle di testo, caselle di controllo e pulsanti, quindi lo invia a uno script sul server.
  • ๐Ÿ“ฌ Metodo POST: $_POST invia valori nel corpo HTTP, mantieniping loro fuori dal URL, che si adatta bene agli accessi e ai dati sensibili.
  • ๐Ÿ”— Metodo OTTIENI: $_GET aggiunge valori al URL, in modo che i risultati possano essere aggiunti ai segnalibri, il che รจ ideale per i moduli di ricerca.
  • ๏ธ POST vs GET: Il metodo POST non ha limiti di lunghezza pratici e supporta molti tipi di dati; il metodo GET รจ piรน breve, supporta solo stringhe ed รจ visibile.
  • โœ… Input di elaborazione: La funzione isset() controlla se un campo รจ stato inviato prima che lo script ne legga e utilizzi il valore.
  • โ˜‘๏ธ Caselle di controllo: Una casella di controllo invia un valore solo quando viene selezionata, quindi la funzione isset() verifica se l'utente ha acconsentito o selezionato l'opzione.
  • ๐Ÿค– Assistenza AI: Gli strumenti di intelligenza artificiale possono generare un modulo valido e sicuro e aiutare a diagnosticare i motivi per cui un modulo non viene inviato correttamente.

Gestione dei moduli PHP

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.

Modulo PHP

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.

Crea un 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.

Metodi GET e POST

Metodi 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.

Motore di ricerca semplice

Digita GET in lettere maiuscole, quindi fai clic sul pulsante Invia.

Di seguito verrร  mostrato quanto segue.

Motore di ricerca semplice

Il diagramma sottostante mostra URL per i risultati sopra riportati.

Motore di ricerca semplice

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.

Lavorare con caselle di controllo, pulsanti di scelta

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.

Lavorare con caselle di controllo, pulsanti di scelta

Fai clic sul collegamento "Torna al modulo", quindi seleziona la casella di controllo.

Lavorare con caselle di controllo, pulsanti di scelta

Clicca sul pulsante di invio.

Otterrai i seguenti risultati.

Lavorare con caselle di controllo, pulsanti di scelta

DOMANDE FREQUENTI

$_GET legge i valori dal URL La stringa di query, $_POST legge i valori dal corpo della richiesta e $_REQUEST unisce i dati GET, POST e dei cookie. รˆ preferibile utilizzare l'array specifico per sapere esattamente da dove proviene un valore.

Non fidarti mai dell'input non elaborato. Convalida con `filter_var()` o con regole per ogni campo e codifica l'output con `htmlspecialchars()` per prevenire gli attacchi XSS. Utilizza istruzioni preparate per le scritture nel database per prevenire le iniezioni SQL.

Le cause comuni sono un metodo del modulo GET invece di POST, attributi name mancanti negli input, un'azione errata URLoppure un enctype multipart mancante per il caricamento dei file. Verifica ciascuno di questi elementi nel tuo modulo.

Sรฌ. L'IA puรฒ creare il modulo HTML, inclusa la convalida lato server, la protezione CSRF e l'output con caratteri di escape. RevPrima di implementare l'applicazione, esamina le regole per ciascun campo e verifica che i controlli di sicurezza siano compatibili con la tua applicazione.

Sรฌ. Condividi il modulo e il gestore, e l'IA puรฒ individuare un'incongruenza nel metodo, un attributo name mancante, un percorso di azione errato o un ramo di convalida che blocca l'invio, quindi suggerire la soluzione.

Riassumi questo post con: