PHP-registratieformulier met GET, POST-methoden met voorbeeld

Wat is vorm?

Wanneer u inlogt op een website of op uw mail box, u communiceert met een formulier.

Formulieren worden gebruikt om input van de gebruiker te krijgen en deze ter verwerking naar de webserver te sturen.

Het onderstaande diagram illustreert het formulierverwerkingsproces.

PHP-formulier

Een formulier is een HTML-tag die grafische gebruikersinterface-items bevat, zoals invoer box, controleren boxes keuzerondjes enz.

Het formulier wordt gedefinieerd met behulp van de … tags en GUI-items worden gedefinieerd met behulp van formulierelementen zoals invoer.

Wanneer en waarom gebruiken we formulieren?

  • Formulieren zijn handig bij het ontwikkelen van flexibele en dynamische applicaties die gebruikersinvoer accepteren.
  • Formulieren kunnen worden gebruikt om reeds bestaande gegevens uit de database te bewerken

Maak een formulier

We zullen HTML-tags gebruiken om een ​​formulier te maken. Hieronder vindt u de minimale lijst met dingen die u nodig heeft om een ​​formulier te maken.

  • Formuliertags openen en sluiten …
  • Type formulierinzending POST of GET
  • Inzendings-URL die de ingediende gegevens verwerkt
  • Invoervelden zoals input boxes, tekstgebieden, knoppen, vinkjeboxe enz.

De onderstaande code maakt een eenvoudig registratieformulier aan

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

wedijverenwing de bovenstaande code in een webbrowser geeft het volgende weerwing vorm.

Maak een formulier

HIER,

  • … zijn de openings- en sluitingsformuliertags
  • action=”registration_form.php” method=”POST”> specificeert de bestemmings-URL en het inzendingstype.
  • Voor-/achternaam: zijn labels voor de invoer boxes
  • zijn ingevoerd box labels
  • is de nieuwe regeltag
  • is een verborgen waarde die wordt gebruikt om te controleren of het formulier is verzonden of niet
  • is de knop die, wanneer erop wordt geklikt, het formulier ter verwerking naar de server verzendt

Het verzenden van de formuliergegevens naar de server

Het action-attribuut van het formulier specificeert de indienings-URL die de gegevens verwerkt. Het method attribuut specificeert het indieningstype.

PHP POST-methode

  • Dit is de ingebouwde super globale arrayvariabele van PHP die wordt gebruikt om waarden op te halen die via de HTTP POST-methode zijn verzonden.
  • De arrayvariabele is toegankelijk vanuit elk script in het programma; het heeft een mondiale reikwijdte.
  • Deze methode is ideaal als u de formulierpostwaarden niet in de URL wilt weergeven.
  • Een goed voorbeeld van het gebruik van de postmethode is het indienen van login details naar de server.

Het heeft de volgendewing syntaxis.

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

HIER,

  • “$_POST[…]” is de PHP-array
  • “'variabele_naam'” is de naam van de URL-variabele.

PHP GET-methode

  • Dit is de ingebouwde superglobale arrayvariabele van PHP die wordt gebruikt om waarden op te halen die zijn ingediend via de HTTP GET-methode.
  • De arrayvariabele is toegankelijk vanuit elk script in het programma; het heeft een mondiale reikwijdte.
  • Met deze methode worden de formulierwaarden in de URL weergegeven.
  • Het is ideaal voor formulieren van zoekmachines, omdat gebruikers hiermee de resultaten kunnen markeren.

Het heeft de volgendewing syntaxis.

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

HIER,

  • “$_GET[…]” is de PHP-array
  • “'variabele_naam'” is de naam van de URL-variabele.

GET versus POST-methoden

POST GET
Waarden niet zichtbaar in de URL Waarden zichtbaar in de URL
Heeft geen beperking van de lengte van de waarden, aangezien ze via de body van HTTP worden ingediend Heeft een beperking voor de lengte van de waarden, meestal 255 tekens. Dit komt omdat de waarden in de URL worden weergegeven. Let op: de bovengrens van de tekens is afhankelijk van de browser.
Heeft lagere prestaties vergeleken met de Php_GET-methode vanwege de tijd die wordt besteed aan het inkapselen van de Php_POST-waarden in de HTTP-body Heeft hoge prestaties vergeleken met de POST-methode dankzij de eenvoudige aard van het toevoegen van de waarden aan de URL.
Ondersteunt veel verschillende gegevenstypen, zoals string, numeriek, binair enz. Ondersteunt alleen tekenreeksgegevenstypen omdat de waarden in de URL worden weergegeven
Resultaten kunnen niet als boek gemarkeerd worden Resultaten kunnen als boek gemarkeerd worden vanwege de zichtbaarheid van de waarden in de URL

Het onderstaande diagram toont het verschil tussen ontvangen en posten

GET versus POST-methoden

GET versus POST-methoden

Verwerken van de gegevens van het inschrijfformulier

Het registratieformulier verzendt gegevens naar zichzelf zoals gespecificeerd in het actieattribuut van het formulier.

Wanneer een formulier is ingediend, worden de waarden ingevuld in de $_POST super globale array.

We zullen de PHP isset-functie gebruiken om te controleren of de formulierwaarden zijn ingevuld in de $_POST-array en de gegevens te verwerken.

We zullen het registratieformulier aanpassen om de PHP-code op te nemen die de gegevens verwerkt. Hieronder vindt u de aangepaste code

<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="/nl/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>

HIER,

  • controleert of het verborgen veld form_subposed is ingevuld in de array $_POST[] en geeft een bedank- en voornaambericht weer.

    Als het veld form_fobposed niet is ingevuld in de array $_POST[], wordt het formulier weergegeven.

Meer voorbeelden

Eenvoudige zoekmachine

We zullen een eenvoudige zoekmachine ontwerpen die de PHP_GET-methode gebruikt als formulierinzendingstype.

Voor de eenvoud zullen we a gebruiken PHP If-instructie om de opbrengst te bepalen.

We zullen dezelfde HTML-code gebruiken voor het bovenstaande registratieformulier en er minimale wijzigingen in aanbrengen.

<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="/nl/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>

Bekijk bovenstaande pagina in een webbrowser

De following formulier zal worden getoond

Eenvoudige zoekmachine

Typ GET in hoofdletters en klik vervolgens op de verzendknop.

De following wordt weergegeven

Eenvoudige zoekmachine

Het onderstaande diagram toont de URL voor de bovenstaande resultaten

Eenvoudige zoekmachine

Houd er rekening mee dat de URL de waarde search_term en form_subposed heeft weergegeven. Probeer iets anders in te voeren dan GET en klik vervolgens op de verzendknop en kijk welke resultaten u krijgt.

Werken met cheque boxes, keuzerondjes

Als de gebruiker geen cheque selecteert box of keuzerondje, er wordt geen waarde ingediend als de gebruiker een cheque selecteert box of keuzerondje, wordt de waarde één (1) of waar ingediend.

We zullen de code van het registratieformulier aanpassen en een vinkje toevoegen waarmee de gebruiker akkoord kan gaan met de servicevoorwaarden.

<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="/nl/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>

Bekijk het bovenstaande formulier in een browser

Werken met Controle boxes, keuzerondjes

Vul de voor- en achternaam in

Let op het vinkje Akkoord met de servicevoorwaardenbox is niet geselecteerd.

Klik op de verzendknop

Je krijgt het vervolgwing

Werken met Controle boxes, keuzerondjes

Klik op terug naar de formulierlink en selecteer vervolgens de chequebox

Werken met Controle boxes, keuzerondjes

Klik op de verzendknop

Je krijgt het vervolgwing

Werken met Controle boxes, keuzerondjes

Samengevat

  • Formulieren worden gebruikt om gegevens van de gebruikers te verkrijgen
  • Formulieren worden gemaakt met behulp van HTML-tags
  • Formulieren kunnen ter verwerking naar de server worden verzonden met behulp van de POST- of GET-methode
  • Formulierwaarden die via de POST-methode worden ingediend, worden ingekapseld in de HTTP-body.
  • Formulierwaarden die via de GET-methode worden ingediend, worden toegevoegd en weergegeven in de URL.