PHP-registratieformulier met GET, POST-methoden met voorbeeld
โก Slimme samenvatting
Formulierverwerking in PHP legt gebruikersinvoer vast via HTML-formulieren en verwerkt deze op de server met behulp van de superglobals $_POST en $_GET. Deze handleiding bouwt een registratieformulier, legt de POST- en GET-methoden uit, vergelijkt ze en laat zien hoe velden, selectievakjes en zoekinvoer verwerkt kunnen worden.

Wat is vorm?
Wanneer je inlogt op een website of je e-mail, heb je te maken 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.
Een formulier is een HTML-tag die grafische gebruikersinterface-elementen bevat, zoals invoervelden, selectievakjes, keuzerondjes en meer.
Het formulier wordt gedefinieerd met behulp van de โฆ Tags en GUI-elementen worden gedefinieerd met behulp van formulierelementen zoals input.
Wanneer en waarom gebruiken we formulieren?
- Formulieren komen goed van pas bij de ontwikkeling van...ping Flexibele en dynamische applicaties die gebruikersinvoer accepteren.
- Formulieren kunnen worden gebruikt om reeds bestaande gegevens in 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
- Onderwerping URL die de ingediende gegevens zal verwerken
- Invoervelden zoals invoervakken, tekstvelden, knoppen, selectievakjes en dergelijke.
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>
Wanneer u de bovenstaande code in een webbrowser bekijkt, wordt het volgende formulier weergegeven.
HIER,
- โฆ zijn de openings- en sluitingsformuliertags
- action=โregistration_form.phpโ method=โPOSTโ specificeert de bestemming URL en het type inzending.
- Voornaam/Achternaam: zijn labels voor de invoervelden
- zijn invoervak-tags
- is de nieuwe regeltag
- is een verborgen waarde die wordt gebruikt om te controleren of het formulier is verzonden of niet
- Dit is de knop die, wanneer erop geklikt wordt, het formulier naar de server verzendt voor verwerking.
Het verzenden van de formuliergegevens naar de server
Het actiekenmerk van het formulier specificeert de indiening. URL die de gegevens verwerkt. Het attribuut `method` specificeert het type indiening.
PHP POST-methode
- Dit is de ingebouwde PHP-superglobale arrayvariabele die wordt gebruikt om waarden op te halen die via de HTTP POST-methode worden verzonden.
- De arrayvariabele is toegankelijk vanuit elk script in het programma; het heeft een mondiale reikwijdte.
- Deze methode is ideaal wanneer u de formulierinzendingswaarden niet wilt weergeven in de URL.
- Een goed voorbeeld van het gebruik van de POST-methode is het verzenden van inloggegevens naar de server.
De syntaxis is als volgt.
<?php
$_POST['variable_name'];
?>
HIER,
- โ$_POST[โฆ]โ is de PHP-array
- 'variabelenaam' is de naam van het formulierveld.
PHP GET-methode
- Dit is de ingebouwde PHP-superglobale arrayvariabele die wordt gebruikt om waarden op te halen die via de HTTP GET-methode worden verzonden.
- De arrayvariabele is toegankelijk vanuit elk script in het programma; het heeft een mondiale reikwijdte.
- Deze methode geeft de formulierwaarden weer in de URL.
- Het is ideaal voor zoekmachineformulieren, omdat gebruikers de resultaten hiermee kunnen bookmarken.
De syntaxis is als volgt.
<?php
$_GET['variable_name'];
?>
HIER,
- โ$_GET[โฆ]โ is de PHP-array
- โ'variabele_naam'โ is de URL variabele naam.
GET versus POST-methoden
| POST | Begin |
|---|---|
| Waarden die niet zichtbaar zijn in de URL | Waarden zichtbaar in de URL |
| Er is geen beperking op de lengte van de waarden, aangezien deze via de body van het HTTP-verzoek worden verzonden. | Er geldt een beperking op de lengte van de waarden, meestal 255 tekens. Dit komt doordat de waarden worden weergegeven in de URLLet op: de maximale tekenlimiet is afhankelijk van de browser. |
| De prestaties zijn lager in vergelijking met de GET-methode vanwege de tijd die nodig is om de POST-waarden in de HTTP-body te verpakken. | Heeft betere prestaties vergeleken met de POST-methode vanwege de eenvoudigere manier waarop de waarden worden toegevoegd. URL. |
| Ondersteunt veel verschillende gegevenstypen, zoals tekenreeksen, numerieke waarden, binaire waarden en meer. | Ondersteunt alleen gegevenstypen zoals tekenreeksen, omdat de waarden worden weergegeven in de URL |
| Resultaten kunnen niet als bladwijzer worden opgeslagen. | Resultaten kunnen worden opgeslagen als bladwijzer omdat de waarden duidelijk zichtbaar zijn. URL |
Het onderstaande diagram laat het verschil zien tussen GET en POST.
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 verzonden, worden de waarden in de globale array $_POST geplaatst.
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 voor de gegevensverwerking toe te voegen. Hieronder staat 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="/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_submitted` in de `$_POST[]`-array is ingevuld en geeft een bedankbericht en de voornaam weer. Als het veld `form_submitted` niet is ingevuld in de `$_POST[]`-array, wordt het formulier weergegeven.
Meer voorbeelden
Eenvoudige zoekmachine
We gaan 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="/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.
Het volgende formulier wordt weergegeven.
Typ GET in hoofdletters en klik vervolgens op de verzendknop.
Het volgende zal worden getoond.
Het onderstaande diagram toont de URL voor de bovenstaande resultaten.
Merk op URL heeft de waarde van search_term en form_submitted weergegeven. Probeer iets anders dan GET in te voeren, klik vervolgens op de verzendknop en kijk welke resultaten je krijgt.
Werken met selectievakjes, keuzerondjes
Als de gebruiker geen selectievakje of keuzeknop aanvinkt, wordt er geen waarde verzonden. Als de gebruiker wel een selectievakje of keuzeknop aanvinkt, wordt de waarde รฉรฉn (1) of 'waar' verzonden.
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="/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 bovenstaand formulier in een browser.
Vul de voor- en achternaam in.
Let op: het selectievakje 'Accepteer de servicevoorwaarden' is niet aangevinkt.
Klik op de verzendknop.
U krijgt de volgende resultaten.
Klik op de link 'Terug naar het formulier' en vink vervolgens het selectievakje aan.
Klik op de verzendknop.
U krijgt de volgende resultaten.










