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.
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.
Het actiekenmerk van het formulier geeft de verzendings URL aan die de gegevens verwerkt. Het attribuut methode geeft het type aanlevering aan.
<? Php $_POST['variable_name']; ?>
<? Php $_GET['variable_name']; ?>
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
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.
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
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.
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>
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
Klik op terug naar de formulierkoppeling en vink vervolgens het selectievakje aan
Klik op de knop Verzenden