PHP -vormhantering
Die PHP superglobals $_GET en $_POST word gebruik om vormdata te versamel.
PHP - 'n Eenvoudige HTML-vorm
Die voorbeeld hieronder vertoon 'n eenvoudige HTML-vorm met twee invoervelde en 'n indien-knoppie:
Voorbeeld
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Wanneer die gebruiker die vorm hierbo invul en op die indien-knoppie klik, word die vormdata vir verwerking na 'n PHP-lêer genaamd "welcome.php" gestuur. Die vormdata word met die HTTP POST-metode gestuur.
Om die ingestuurde data te vertoon, kan jy eenvoudig al die veranderlikes eggo. Die "welcome.php" lyk soos volg:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Die uitset kan iets soos volg wees:
Welcome John
Your email address is [email protected]
Dieselfde resultaat kan ook bereik word met behulp van die HTTP GET metode:
Voorbeeld
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
en "welcome_get.php" lyk soos volg:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Die kode hierbo is redelik eenvoudig. Die belangrikste ding ontbreek egter. Jy moet vormdata valideer om jou skrif teen kwaadwillige kode te beskerm.
Dink SEKURITEIT wanneer jy PHP-vorms verwerk!
Hierdie bladsy bevat geen vormvalidering nie, dit wys net hoe jy vormdata kan stuur en herwin.
Die volgende bladsye sal egter wys hoe om PHP-vorms te verwerk met sekuriteit in gedagte! Behoorlike bekragtiging van vormdata is belangrik om u vorm teen kuberkrakers en spammers te beskerm!
KRY vs. POST
Beide GET en POST skep 'n skikking (bv. skikking (sleutel1 => waarde1, sleutel2 => waarde2, sleutel3 => waarde3, ...)). Hierdie skikking bevat sleutel/waarde-pare, waar sleutels die name van die vormkontroles is en waardes die invoerdata van die gebruiker is.
Beide GET en POST word as $_GET en $_POST behandel. Dit is superglobals, wat beteken dat hulle altyd toeganklik is, ongeag omvang - en jy kan toegang tot hulle verkry vanaf enige funksie, klas of lêer sonder om iets spesiaals te doen.
$_GET is 'n verskeidenheid veranderlikes wat deur die URL-parameters na die huidige skrif oorgedra word.
$_POST is 'n verskeidenheid veranderlikes wat deur die HTTP POST-metode na die huidige skrif oorgedra word.
Wanneer om GET te gebruik?
Inligting wat vanaf 'n vorm met die AOO-metode gestuur word, is vir almal sigbaar (alle veranderlike name en waardes word in die URL vertoon). AOO het ook beperkings op die hoeveelheid inligting om te stuur. Die beperking is ongeveer 2000 karakters. Omdat die veranderlikes egter in die URL vertoon word, is dit moontlik om die bladsy te boekmerk. Dit kan in sommige gevalle nuttig wees.
GET kan gebruik word vir die stuur van nie-sensitiewe data.
Let wel: GET moet NOOIT gebruik word om wagwoorde of ander sensitiewe inligting te stuur nie!
Wanneer om POST te gebruik?
Inligting wat vanaf 'n vorm met die POST-metode gestuur word, is onsigbaar vir ander (alle name/waardes is ingebed in die liggaam van die HTTP-versoek) en het geen beperkings op die hoeveelheid inligting om te stuur nie.
Boonop ondersteun POST gevorderde funksionaliteit soos ondersteuning vir meervoudige binêre invoer tydens die oplaai van lêers na bediener.
Omdat die veranderlikes egter nie in die URL vertoon word nie, is dit nie moontlik om die bladsy te boekmerk nie.
Ontwikkelaars verkies POST vir die stuur van vormdata.
Kom ons kyk dan hoe ons PHP-vorms op 'n veilige manier kan verwerk!