PHP-Formularverarbeitung

PHP-Übergabeparameter $_GET und $_POST werden verwendet, um Formulardaten (form-data) zu sammeln.

PHP - Ein einfaches HTML-Formular

Das folgende Beispiel zeigt ein einfaches HTML-Formular, das zwei Eingabefelder und einen Absendeknopf enthält:

Beispiel

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

Laufende Beispiele

Wenn der Benutzer dieses Formular ausfüllt und auf die Schaltfläche "Senden" klickt, werden die Formulardaten an die PHP-Datei "welcome.php" gesendet, um verarbeitet zu werden. Die Formulardaten werden über das HTTP-POST-Verfahren gesendet.

Um die übermittelten Daten anzuzeigen, können Sie einfach alle Variablen ausgeben (echo). Die Datei "welcome.php" sieht so aus:

<html>
<body>
Willkommen <?php echo $_POST["name"]; ?><br>
Ihre E-Mail-Adresse ist: <?php echo $_POST["email"]; ?>
</body>
</html>

Ausgabe:

Willkommen Bill
Ihre E-Mail-Adresse ist Bill.Gates@example.com

Mit dem HTTP-GET-Verfahren können ebenfalls die gleichen Ergebnisse erzielt werden:

Beispiel

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

Laufende Beispiele

"welcome_get.php" sieht so aus:

<html>
<body>
Willkommen <?php echo $_GET["name"]; ?><br>
Ihre E-Mail-Adresse ist: <?php echo $_GET["email"]; ?>
</body>
</html>

Der obige Code ist einfach. Allerdings wurde der wichtigste Inhalt weggelassen. Sie müssen die Formulardaten validieren, um Lücken im Skript zu vermeiden.

Hinweis:Beim Umgang mit PHP-Formularen achten Sie bitte auf die Sicherheit!

Diese Seite enthält keine Formularvalidierung, sie zeigt nur, wie Formulardaten gesendet und empfangen werden.

Allerdings wird in den folgenden Kapiteln gezeigt, wie die Sicherheit von PHP-Formularen verbessert werden kann! Eine angemessene Sicherheitsprüfung von Formularen ist entscheidend, um Hackerangriffe und Spam zu verhindern!

GET vs. POST

GET und POST erstellen beide Arrays (z.B., array( key => value, key2 => value2, key3 => value3, ...) ). Dieses Array enthält Schlüssel/Wert-Paare, bei denen der Schlüssel der Name des Formularelements ist und der Wert die von den Benutzern übermittelten Eingabedaten enthält.

GET und POST werden als $_GET und $_POST betrachtet. Sie sind Super-globale Variablen, was bedeutet, dass der Zugriff darauf ohne Rücksicht auf den Gültigkeitsbereich erfolgen kann - ohne speziellen Code können Sie von jeder Funktion, Klasse oder Datei darauf zugreifen.

$_GET ist ein Variable-Array, das durch URL-Parameter an den aktuellen Skript übermittelt wird.

$_POST ist ein Variable-Array, das durch HTTP POST an den aktuellen Skript übermittelt wird.

Wann sollte GET verwendet werden?

Informationen, die durch GET-Methode von Formularen gesendet werdenFür alle sichtbarAlle Variablennamen und -werte werden in der URL angezeigt). GET hat auch eine Begrenzung für die Anzahl der gesendeten Informationen. Die Begrenzung beträgt etwa 2000 Zeichen. Allerdings ist es aufgrund der Anzeige der Variablen in der URL auch einfacher, die Seite zu einem Lesezeichen hinzuzufügen.

GET kann zum Senden von nicht sensiblen Daten verwendet werden.

Anmerkung:POST sollte niemals zum Senden von Passwörtern oder anderen sensiblen Informationen verwendet werden!

Wann sollte POST verwendet werden?

Informationen, die durch POST-Methode von Formularen gesendet werdenFür andere nicht sichtbarAlle Namen/Werte werden in den Hauptteil der HTTP-Anfrage eingebettet), und auch die Anzahl der gesendeten Informationen istUnbegrenzt.

Darüber hinaus unterstützt POST fortgeschrittene Funktionen, wie z.B. das Erstellen von multi-part binärem Input, wenn Dateien an den Server hochgeladen werden.

Allerdings, da die Variablen nicht in der URL angezeigt werden, kann die Seite nicht zum Lesezeichen hinzugefügt werden.

Hinweis:Entwickler bevorzugen POST, um Formulardaten zu senden.

Lassen Sie uns nun sehen, wie man PHP-Formulare sicher verarbeitet!