Die Variablen $_GET und $_POST in PHP werden verwendet, um Informationen aus einem Formular abzurufen, beispielsweise Benutzereingaben.
Wichtig zu beachten ist, dass PHP bei der Verarbeitung von HTML-Formularen automatisch Formularelemente aus der HTML-Seite für PHP-Skripte verfügbar machen kann.
Das folgende Beispiel enthält ein HTML-Formular mit zwei Eingabefeldern und einer Schaltfläche zum Senden.
<html><head><metacharset="utf-8"><title>Quellcode-Netzwerk (downcodes.com)</title></head><body> <formaction="welcome.php"method="post" > Name: <inputtype="text"name="fname">Alter: <inputtype="text"name="age"><inputtype="submit"value="submit"></form> </body>< /html>
Wenn der Benutzer das obige Formular ausfüllt und auf die Schaltfläche „Senden“ klickt, werden die Formulardaten an eine PHP-Datei mit dem Namen „welcome.php“ gesendet:
Willkommen<?phpecho$_POST["fname"] ?>!<br>Ihr Alter beträgt <?phpecho$_POST["age"];
Im nächsten Kapitel erklären wir die Variablen $_GET und $_POST in PHP.
Im folgenden Beispiel legen wir drei Optionen für das Dropdown-Menü fest. Das Formular verwendet die GET-Methode, um Daten abzurufen. Wenn der Aktionsattributwert leer ist, bedeutet dies, dass er an das aktuelle Skript gesendet wird Wählen Sie das Dropdown-Menü über das Namensattribut aus:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Quellcode-Netzwerk<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Google-Suche<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com'; }}else{?><formaction=""method="get"> <selectname=" q"> <optionvalue="">Wählen Sie eine Website aus:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="submit"> </form><?php}?>
Wenn das Dropdown-Menü eine Mehrfachauswahl (multiple="multiple") ist, können wir es erhalten, indem wir select name="q[]" als Array festlegen und es mit POST senden. Der Code lautet wie folgt:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Quellcode Netzwerk: http://www.downcodes.com', 'GOOGLE'=> 'Google-Suche: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL ist eine Konstante, die für Zeilenumbrüche verwendet wird echo$sites[$val] }else{?><formaction =" "method="post"> <selectmultiple="multiple"name="q[]"> <optionvalue="">Wählen Sie eine Site aus:</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="Submit"> </form><?php}?>
Die Werte des Namensattributs im PHP-Optionsfeldformular sind konsistent, die Wertwerte sind jedoch unterschiedlich. Der Code lautet wie folgt:
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Quellcode-Netzwerk<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Google-Suche<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com'; }}else{?><formaction=""method="get"> <inputtype=" radio"name="q"value="CODERCTO"/>codercto <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>Taobao <inputtype="submit"value="submit"></form><?php}?>
Das Kontrollkästchen „PHP-Kontrollkästchen“ kann mehrere Werte auswählen:
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Quellcode Netzwerk: http://www.downcodes.com', 'GOOGLE'=> 'Google-Suche: http://www.google.com', 'TAOBAO'=> 'Taobao: http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL ist eine Konstante, die für Zeilenumbrüche verwendet wird echo$sites[$val] }else{?><formaction =" "method="post"> <inputtype="checkbox"name="q[]"value="CODERCTO">codercto<br> <inputtype="checkbox"name="q[]"value="GOOGLE">Google<br> <inputtype="checkbox"name="q[]"value="TAOBAO">Taobao<br> <inputtype=" send"value="submit"></form><?php}?>
Wir sollten Benutzereingaben nach Möglichkeit validieren (über clientseitige Skripte). Die Browservalidierung ist schneller und entlastet den Server weniger.
Wenn Benutzereingaben in eine Datenbank eingefügt werden müssen, sollten Sie die Verwendung einer Servervalidierung in Betracht ziehen. Eine gute Möglichkeit, ein Formular auf dem Server zu validieren, besteht darin, die Formulardaten an die aktuelle Seite zu übergeben (asynchrone Übermittlung ist besser), anstatt zu einer anderen Seite zu springen. Auf diese Weise können Benutzer Fehlermeldungen auf derselben Formularseite erhalten. Für Benutzer wird es einfacher, Fehler zu finden.