Arduino

PHP registratieformulier met behulp van GET, POST methoden met voorbeeld

Wat is een formulier?

Wanneer u zich aanmeldt bij een website of in uw mailbox, gebruikt u een formulier.

Formulieren worden gebruikt om invoer van de gebruiker te krijgen en deze bij de webserver in te dienen voor verwerking.

Het onderstaande diagram illustreert het formulierverwerkingsproces.

Een formulier is een HTML tag die grafische items voor de gebruikersinterface bevat, zoals invoervak, selectievakjes, keuzerondjes, enzovoort.

Het formulier wordt gedefinieerd met behulp van de <form> ... </ form> tags en GUI items worden gedefinieerd met behulp van formulierelementen zoals invoer.

In deze tutorial leer je:

Wanneer en waarom gebruiken we formulieren?

Maak een formulier

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

De onderstaande code creëert een eenvoudig registratieformulier

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

Als u de bovenstaande code in een webbrowser bekijkt, wordt het volgende formulier weergegeven.

De formuliergegevens verzenden naar de server

Het actiekenmerk van het formulier geeft de verzendings URL aan die de gegevens verwerkt. Het attribuut methode geeft het type aanlevering aan.

PHP POST methode

Het heeft de volgende syntaxis.

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

PHP GET methode

Het heeft de volgende syntaxis.

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

GET versus POST methoden

POST KRIJGEN

Waarden niet zichtbaar in de URL Waarden zichtbaar in de URL
Heeft geen beperking van de lengte van de waarden omdat deze worden ingediend via het hoofdgedeelte van HTTP Heeft een beperking van de lengte van de waarden, meestal 255 tekens. Dit komt omdat de waarden worden weergegeven in de URL. Let op de bovengrens van de tekens is afhankelijk van de browser.
Heeft een lagere performance vergeleken met de Php_GET methode vanwege de tijd die nodig is om de Php_POST waarden in de HTTP body in te voegen Heeft hoge prestaties in vergelijking met de POST methode, vanwege de eenvoudige aard van het toevoegen van de waarden in de URL.
Ondersteunt veel verschillende gegevenstypen zoals string, numeriek, binair enz. Ondersteunt alleen stringgegevenstypen omdat de waarden in de URL worden weergegeven
Resultaten kunnen niet worden gemarkeerd Resultaten kunnen worden gemarkeerd vanwege de zichtbaarheid van de waarden in de URL

Het onderstaande diagram toont het verschil tussen get en post

Verwerking van de gegevens van het registratieformulier

Het registratieformulier verzendt gegevens naar zichzelf zoals opgegeven in het actiekenmerk van het formulier.

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

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

We zullen het registratieformulier wijzigen om de PHP code op te nemen die de gegevens verwerkt. 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>
                

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

Meer voorbeelden

Eenvoudige zoekmachine

We ontwerpen een eenvoudige zoekmachine die de PHP_GET methode gebruikt als het formulierinvoertype.

Voor de eenvoud zullen we een PHP If statement gebruiken om de uitvoer te bepalen.

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

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

Bekijk de bovenstaande pagina in een webbrowser

Het volgende formulier wordt getoond

Typ GET in hoofdletters en klik vervolgens op de knop Verzenden.

Het volgende wordt getoond

Het onderstaande diagram toont de URL voor de bovenstaande resultaten

Merk op dat de URL de waarde van search_term en form_submitted heeft weergegeven. Probeer iets anders in te voeren dan GET en klik vervolgens op de knop Verzenden om te zien welke resultaten u zult behalen.

Werken met selectievakjes, keuzerondjes

Als de gebruiker geen selectievakje of keuzerondje selecteert, wordt er geen waarde verzonden. Als de gebruiker een selectievakje of keuzerondje selecteert, wordt de waarde van één (1) of waar verzonden.

We zullen de registratieformuliercode wijzigen en een controleknop toevoegen waarmee de gebruiker akkoord gaat 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 het bovenstaande formulier in een browser

Vul de voor en achternaam in

Houd er rekening mee dat het selectievakje Mee eens met servicevoorwaarden niet is geselecteerd.

Klik op de knop Verzenden

U krijgt de volgende resultaten

Klik op terug naar de formulierkoppeling en vink vervolgens het selectievakje aan

Klik op de knop Verzenden

U krijgt de volgende resultaten

Samenvatting

Vorige Volgende