Modulo di registrazione PHP utilizzando metodi GET e POST con esempio

Cos'è la Forma?

Quando accedi a un sito web o alla tua casella di posta, 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 dell'interfaccia utente grafica, come caselle di input, caselle di controllo, pulsanti di scelta, ecc.

Il modulo è definito utilizzando il file … i tag e gli elementi della GUI vengono definiti utilizzando elementi del modulo come input.

Quando e perché utilizziamo i moduli?

  • I moduli sono utili quando si sviluppano applicazioni flessibili e dinamiche che accettano l'input dell'utente.
  • I moduli possono essere utilizzati per modificare dati già esistenti 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
  • URL di invio che elaborerà i dati inviati
  • Campi di input quali caselle di input, aree di testo, pulsanti, caselle di controllo ecc.

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 l'URL di destinazione 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 quando cliccato invia il modulo al server per l'elaborazione

Invio dei dati del modulo al server

L'attributo action del modulo specifica l'URL di invio che elabora i dati. L'attributo del metodo specifica il tipo di invio.

Metodo PHP POST

  • Questa è la variabile di array super globale incorporata in PHP che viene utilizzata per ottenere 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 desideri visualizzare i valori dei post del modulo nell'URL.
  • Un buon esempio di utilizzo del metodo post è quando si inviano i dati di accesso al server.

La sintassi è la seguente.

<?php
 $_POST['variable_name'];
?>

QUI,

  • “$_POST[…]” è il matrice PHP
  • “'variable_name'” è il nome della variabile URL.

Metodo GET PHP

  • Questa è la variabile di array super globale incorporata in PHP che viene utilizzata per ottenere 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 nell'URL.
  • È ideale per i moduli dei motori di ricerca in quanto consente agli utenti di contrassegnare i risultati.

La sintassi è la seguente.

<?php
$_GET['variable_name'];
?>

QUI,

  • “$_GET[…]” è l'array PHP
  • “'variable_name'” è il nome della variabile URL.

Metodi GET e POST

POST GET
Valori non visibili nell'URL Valori visibili nell'URL
Non ha limitazione della lunghezza dei valori poiché vengono inviati tramite il corpo di HTTP Ha una limitazione sulla lunghezza dei valori, solitamente 255 caratteri. Questo perché i valori vengono visualizzati nell'URL. Tieni presente che il limite superiore dei caratteri dipende dal browser.
Ha prestazioni inferiori rispetto al metodo Php_GET a causa del tempo impiegato per incapsulare i valori Php_POST nel corpo HTTP Ha prestazioni elevate rispetto al metodo POST grazie alla natura semplice di aggiungere valori nell'URL.
Supporta molti tipi di dati diversi come stringhe, numerici, binari ecc. Supporta solo tipi di dati stringa perché i valori vengono visualizzati nell'URL
I risultati non possono essere contrassegnati I risultati possono essere contrassegnati grazie alla visibilità dei valori nell'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 è stato inviato, i valori vengono popolati nell'array super globale $_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="/it/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_submission è stato compilato nell'array $_POST[] e visualizza un messaggio di ringraziamento e nome.

    Se il campo form_fobtched 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 PHP_GET come tipo di invio del modulo.

Per semplicità useremo a PHP Se istruzione 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="/it/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>

Visualizzare la pagina precedente in un browser web

Verrà mostrato il seguente modulo

Motore di ricerca semplice

Digitare GET in maiuscolo quindi fare clic sul pulsante di invio.

Verrà mostrato quanto segue

Motore di ricerca semplice

Il diagramma seguente mostra l'URL per i risultati di cui sopra

Motore di ricerca semplice

Tieni presente che l'URL ha visualizzato il valore di search_term e form_submit. Prova a inserire qualcosa di diverso da GET, quindi fai clic sul pulsante di invio e vedi quali risultati otterrai.

Lavorare con caselle di controllo, pulsanti di scelta

Se l'utente non seleziona una casella di controllo o un pulsante di scelta, non viene inviato alcun valore; se l'utente seleziona una casella di controllo o un pulsante di scelta, viene inviato il valore uno (1) o vero.

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="/it/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 sopra in un browser

Lavorare con caselle di controllo, pulsanti di scelta

Inserisci il nome e il cognome

Si noti che la casella di controllo Accetta i Termini di servizio non è stata selezionata.

Fare clic sul pulsante Invia

Otterrai i seguenti risultati

Lavorare con caselle di controllo, pulsanti di scelta

Fare clic sul collegamento "Torna al modulo" e quindi selezionare la casella di controllo

Lavorare con caselle di controllo, pulsanti di scelta

Fare clic sul pulsante Invia

Otterrai i seguenti risultati

Lavorare con caselle di controllo, pulsanti di scelta

Sintesi

  • I moduli vengono utilizzati per ottenere dati dagli utenti
  • I moduli vengono creati utilizzando tag HTML
  • I moduli possono essere inviati al server per l'elaborazione utilizzando il metodo POST o GET
  • I valori del modulo inviati tramite il metodo POST sono incapsulati nel corpo HTTP.
  • I valori del modulo inviati tramite il metodo GET vengono aggiunti e visualizzati nell'URL.