PHP-formularhåndtering
- Forrige side PHP superglobale
- Næste side PHP formvalidering
PHP-udvidelsesgrupperne $_GET og $_POST bruges til at indsamle formulardata (form-data).
PHP - En simpel HTML-formular
Dette eksempelet viser en simpel HTML-formular, der indeholder to input-felter og en indsendelsesknap:
Eksempel
<html> <body> <form action="welcome.php" method="post"> Navn: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
Når brugeren udfylder denne formular og klikker på submit-knappen, sendes formulardataene til PHP-filen "welcome.php" til behandling. Formulardataene sendes via HTTP POST-metoden.
For at vise de indsendte data kan du simpelthen outputte (echo) alle variabler. Filen "welcome.php" er som følger:
<html> <body> Velkommen <?php echo $_POST["name"]; ?><br> Din e-mailadresse er: <?php echo $_POST["email"]; ?> </body> </html>
Uddrag:
Velkommen Bill Din e-mailadresse er Bill.Gates@example.com
Du kan også få samme resultat ved at bruge HTTP GET-metoden:
Eksempel
<html> <body> <form action="welcome_get.php" method="get"> Navn: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
"welcome_get.php" er som følger:
<html> <body> Velkommen <?php echo $_GET["name"]; ?><br> Din e-mailadresse er: <?php echo $_GET["email"]; ?> </body> </html>
Koden er meget simpel. Dog er det vigtigste indhold blevet overset. Du skal validere formulardataene for at forhindre, at skriptet får huller.
Bemærk:Vær opmærksom på sikkerhed, når du håndterer PHP-formularer!
Denne side indeholder ingen formvalidationsprogrammer, den viser kun, hvordan man sender og modtager formulardata.
Men de efterfølgende kapitler vil forklare, hvordan du kan øge sikkerheden for PHP-formularer! Det er vigtigt at udføre passende sikkerhedsvalidering for at modstå hackere og spam.
GET vs. POST
GET og POST opretter begge arrays (f.eks., array(key => value, key2 => value2, key3 => value3, ...))。Denne array indeholder nøgle/værdipar, hvor nøglen er navnet på formularkontrollen, og værdien er inputdata fra brugeren.
GET og POST betragtes som $_GET og $_POST. De er superglobale variabler, hvilket betyder, at adgang til dem ikke kræver betragtning af område - du kan få adgang til dem fra enhver funktion, klasse eller fil uden nogen special kode.
$_GET er en variabelarray, der sendes til den aktuelle skript via URL-parametre.
$_POST er en variabelarray, der sendes til den aktuelle skript via HTTP POST.
Når skal man bruge GET?
Information, der sendes fra formularen via GET-metodenEr synlig for alle(alle variabelnavne og værdier vises i URL'en)。GET har også en begrænsning for mængden af information, der sendes. Begrænsningen er omkring 2000 tegn. Men da variablerne vises i URL'en, er det også mere nemt at tilføje siden til boksmærker.
GET kan bruges til at sende ikke-følsomme data.
Bemærk:Man må aldrig bruge GET til at sende adgangskoder eller andre følsomme oplysninger!
Når skal man bruge POST?
Information, der sendes fra formularen via POST-metodener utilgængelig for andre(alle navne/værdier vil blive indlejret i HTTP-forespørgslens hoveddel),og der er også en begrænsning for mængden af information, der sendesUbegrænset.
Derudover understøtter POST avancerede funktioner, såsom multi-part binær input, når man uploader filer til serveren.
Men da variablerne ikke vises i URL'en, kan man ikke tilføje siden til boksmærker.
Tip:Udviklere foretrækker POST til at sende formulardata.
Lad os nu se, hvordan vi sikkert håndterer PHP-formularer!
- Forrige side PHP superglobale
- Næste side PHP formvalidering