PHP-formularhåndtering

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>

Kør eksempel

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>

Kør eksempel

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