Handhabung von PHP -Formularen
Die PHP-Superglobals $_GET und $_POST werden verwendet, um Formulardaten zu sammeln.
PHP - Ein einfaches HTML-Formular
Das folgende Beispiel zeigt ein einfaches HTML-Formular mit zwei Eingabefeldern und einer Schaltfläche zum Senden:
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>
Wenn der Benutzer das obige Formular ausfüllt und auf die Schaltfläche „Senden“ klickt, werden die Formulardaten zur Verarbeitung an eine PHP-Datei mit dem Namen „welcome.php“ gesendet. Die Formulardaten werden mit der HTTP-POST-Methode gesendet.
Um die übermittelten Daten anzuzeigen, könnten Sie einfach alle Variablen echoen. Die "welcome.php" sieht so aus:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Die Ausgabe könnte in etwa so aussehen:
Welcome John
Your email address is [email protected]
Das gleiche Ergebnis könnte auch mit der HTTP-GET-Methode 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>
und "welcome_get.php" sieht so aus:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Der obige Code ist recht einfach. Das Wichtigste fehlt jedoch. Sie müssen Formulardaten validieren, um Ihr Skript vor bösartigem Code zu schützen.
Denken Sie bei der Verarbeitung von PHP-Formularen an SICHERHEIT!
Diese Seite enthält keine Formularvalidierung, sie zeigt nur, wie Sie Formulardaten senden und abrufen können.
Auf den nächsten Seiten erfahren Sie jedoch, wie Sie PHP-Formulare sicher verarbeiten! Die ordnungsgemäße Validierung von Formulardaten ist wichtig, um Ihr Formular vor Hackern und Spammern zu schützen!
GET vs. POST
Sowohl GET als auch POST erstellen ein Array (zB array( key1 => value1, key2 => value2, key3 => value3, ...)). Dieses Array enthält Schlüssel/Wert-Paare, wobei Schlüssel die Namen der Formularsteuerelemente und Werte die Eingabedaten des Benutzers sind.
Sowohl GET als auch POST werden als $_GET und $_POST behandelt. Dies sind Superglobals, was bedeutet, dass sie immer zugänglich sind, unabhängig vom Geltungsbereich - und Sie können von jeder Funktion, Klasse oder Datei aus darauf zugreifen, ohne etwas Besonderes tun zu müssen.
$_GET ist ein Array von Variablen, die über die URL-Parameter an das aktuelle Skript übergeben werden.
$_POST ist ein Array von Variablen, die über die HTTP POST-Methode an das aktuelle Skript übergeben werden.
Wann sollte GET verwendet werden?
Informationen, die von einem Formular mit der GET-Methode gesendet werden, sind für alle sichtbar (alle Variablennamen und -werte werden in der URL angezeigt). GET hat auch Beschränkungen für die Menge der zu sendenden Informationen. Die Beschränkung liegt bei etwa 2000 Zeichen. Da die Variablen jedoch in der URL angezeigt werden, ist es möglich, die Seite mit einem Lesezeichen zu versehen. Dies kann in einigen Fällen nützlich sein.
GET kann zum Senden nicht sensibler Daten verwendet werden.
Hinweis: GET sollte NIEMALS zum Senden von Passwörtern oder anderen sensiblen Informationen verwendet werden!
Wann sollte POST verwendet werden?
Informationen, die von einem Formular mit der POST-Methode gesendet werden, sind für andere unsichtbar (alle Namen/Werte sind in den Hauptteil der HTTP-Anforderung eingebettet) und es gibt keine Beschränkungen hinsichtlich der Menge der zu sendenden Informationen.
Darüber hinaus unterstützt POST erweiterte Funktionen wie die Unterstützung für mehrteilige Binäreingaben beim Hochladen von Dateien auf den Server.
Da die Variablen jedoch nicht in der URL angezeigt werden, ist es nicht möglich, die Seite mit einem Lesezeichen zu versehen.
Entwickler bevorzugen POST zum Senden von Formulardaten.
Sehen wir uns als Nächstes an, wie wir PHP-Formulare auf sichere Weise verarbeiten können!