PHP formulierverwerking

De PHP-superglobale variabelen $_GET en $_POST worden gebruikt om formuliergegevens (form-data) te verzamelen.

PHP - Een eenvoudige HTML-formulier

Dit voorbeeld toont een eenvoudige HTML-formulier met twee invoervelden en een submit-knop:

Voorbeeld

<html>
<body>
<form action="welcome.php" method="post">
Naam: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Voer een voorbeeld uit

Wanneer de gebruiker dit formulier invult en op de knop "submit" klikt, worden de formuliergegevens naar het PHP-bestand genaamd "welcome.php" verzonden voor verwerking. De formuliergegevens worden via de HTTP POST-methode verzonden.

Om de ingediende gegevens weer te geven, kun je eenvoudig alle variabelen weergeven (echo). Het bestand "welcome.php" ziet er zo uit:

<html>
<body>
Welkom <?php echo $_POST["name"]; ?><br>
Je e-mailadres is: <?php echo $_POST["email"]; ?>
</body>
</html>

Uitvoer:

Welkom Bill
Je e-mailadres is Bill.Gates@example.com

Je kunt ook hetzelfde resultaat krijgen met de HTTP GET-methode:

Voorbeeld

<html>
<body>
<form action="welcome_get.php" method="get">
Naam: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Voer een voorbeeld uit

"welcome_get.php" ziet er zo uit:

<html>
<body>
Welkom <?php echo $_GET["name"]; ?><br>
Je e-mailadres is: <?php echo $_GET["email"]; ?>
</body>
</html>

Het bovenstaande code is eenvoudig. Maar het belangrijkste deel is over het hoofd gezien. Je moet de formulierdata valideren om lekken in scripts te voorkomen.

Opmerking:Let op bij het verwerken van PHP-formulieren!

Deze pagina bevat geen formuliervalidatieprogramma's, het toont ons alleen hoe je formulierdata kunt verzenden en ontvangen.

Maar in latere hoofdstukken zal ik je uitleggen hoe je de beveiliging van PHP-formulieren kunt verbeteren! Het uitvoeren van passende beveiligingscontroles voor formulieren is erg belangrijk om aanvallen door hackers en spam te voorkomen!

GET vs. POST

GET en POST maken beide een array (bijvoorbeeld, array( key => value, key2 => value2, key3 => value3, ...)). Deze array bevat sleutel/waardeparen, waarbij de sleutel de naam van het formuliercontrolelement is en de waarde de gegevens van de gebruikersinput.

GET en POST worden gezien als $_GET en $_POST. Ze zijn superglobale variabelen, wat betekent dat toegang tot hen geen rekening hoeft te houden met het bereik - zonder enige speciale code kunt u toegang krijgen tot hen vanuit elke functie, klasse of bestand.

$_GET is een variabelenarray die via URL-parameters naar het huidige script wordt overgebracht.

$_POST is een variabelenarray die via HTTP POST naar het huidige script wordt overgebracht.

Wanneer moet je GET gebruiken?

Informatie die via de GET-methode van het formulier wordt verzondenZichtbaar voor iedereen(Alle variabelennamen en waarden worden weergegeven in de URL)。GET heeft ook een limiet op de hoeveelheid informatie die wordt verzonden. De limiet ligt ongeveer op 2000 karakters. Omdat de variabelen in de URL worden weergegeven, is het ook gemakkelijker om de pagina aan de favorieten toe te voegen.

GET kan worden gebruikt om niet-sensibiliteit te verzenden.

Opmerking:Gebruik GET absoluut niet om wachtwoorden of andere gevoelige informatie te verzenden!

Wanneer moet je POST gebruiken?

Informatie die via de POST-methode van het formulier wordt verzondenis niet zichtbaar voor anderen(Alle namen/waarden worden ingebed in het lichaam van de HTTP-verzoek),en ook de hoeveelheid informatie die wordt verzondenOnbeperkt.

Daarnaast ondersteunt POST geavanceerde functies, zoals multi-part binair ingeven bij het uploaden van bestanden naar de server.

Omdat de variabelen niet in de URL worden weergegeven, kan de pagina ook niet aan de favorieten worden toegevoegd.

Tip:Ontwikkelaars geven de voorkeur aan POST om formuliergegevens te verzenden.

Laten we nu eens kijken hoe we PHP formulieren veilig kunnen verwerken!