PHP-formulärhantering

PHP-övergloabal variabler $_GET och $_POST används för att samla in formulärdata (form-data).

PHP - Ett enkelt HTML-formulär

Exempelvis visar följande HTML-formulär ett enkelt formulär som innehåller två inmatningsfält och en submit-knapp:

Exempel

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

Kör en instans

När användaren fyller i detta formulär och klickar på submit-knappen skickas formulärdata till PHP-filen "welcome.php" för behandling. Formulärdata skickas via HTTP POST-metoden.

För att visa de inmatade data kan du enkelt skriva ut (echo) alla variabler. Filen "welcome.php" ser så ut:

<html>
<body>
Välkommen <?php echo $_POST["name"]; ?><br>
Din e-postadress är: <?php echo $_POST["email"]; ?>
</body>
</html>

Uttan:

Välkommen Bill
Din e-postadress är Bill.Gates@example.com

Du kan också få samma resultat med HTTP GET-metoden:

Exempel

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

Kör en instans

"welcome_get.php" ser så ut:

<html>
<body>
Välkommen <?php echo $_GET["name"]; ?><br>
Din e-postadress är: <?php echo $_GET["email"]; ?>
</body>
</html>

Koden ovan är enkel. Men det viktigaste innehållet har glömts bort. Du måste verifiera formulärdata för att förhindra att skriptet får sprickor.

Observera:Var uppmärksam på säkerhet när du hanterar PHP-formulär!

Denna sida innehåller inga formulärverifieringsprogram, den visar bara hur man skickar och mottar formulärdata.

Men i de efterföljande kapitlen kommer vi att förklara hur du kan öka säkerheten för PHP-formulär! Appropriet säkerhetsverifiering av formulär är mycket viktig för att motstå hackare och spam.

GET vs. POST

GET och POST skapar båda arrayer (t.ex., array(key => value, key2 => value2, key3 => value3, ...)). Denna array innehåller nyckel/värde-par, där nyckeln är namnet på formularkontrollen och värdet är inmatningsdata från användaren.

GET och POST betraktas som $_GET och $_POST. De är superglobala variabler, vilket innebär att åtkomsten till dem inte behöver övervägas i förhållande till omfattning - det krävs ingen särskild kod, du kan komma åt dem från alla funktioner, klasser eller filer.

$_GET är en variabelarray som skickas till den aktuella skriptet via URL-parametrar.

$_POST är en variabelarray som skickas till den aktuella skriptet via HTTP POST.

När ska man använda GET?

Information som skickas från formulär via GET-metodensynlig för alla(alla variabelnamn och värden visas i URL:en)。GET har också en begränsning för mängden information som skickas. Begränsningen är cirka 2000 tecken. Men eftersom variablerna visas i URL:en är det också mer bekvämt att lägga till sidan i bokmärken.

GET kan användas för att skicka osensitiv data.

Kommentar:Det är aldrig lämpligt att använda GET för att skicka lösenord eller annan känslig information!

När ska man använda POST?

Information som skickas från formulär via POST-metodenär osynlig för andra(alla namn/värden läggs in i HTTP-forespåralets kropp),och också för mängden information som skickasObegränsat.

POST stöder också avancerade funktioner, till exempel multi-part binär inmatning när filer laddas upp till servern.

Men eftersom variablerna inte visas i URL:en, kan sidan inte läggas till i bokmärken.

Tips:Utvecklare föredrar POST för att skicka formulärdata.

Låt oss nu se hur vi säkert kan hantera PHP-formulär!