PHP Formulare und Benutzereingaben
Die Variablen $_GET und $_POST in PHP werden verwendet, um Informationen aus Formularen abzurufen, wie z. B. Benutzereingaben.
PHP-Formularverarbeitung
Ein wichtiger Punkt ist, dass PHP beim Verarbeiten von HTML-Formularen die Formularelemente einer HTML-Seite automatisch für PHP-Skripte verfügbar machen kann.
Beispiel
Das folgende Beispiel enthält ein HTML-Formular mit zwei Eingabefeldern und einer Absenden-Schaltfläche.
Code der Datei form.html:
<html>
<head>
<meta charset="utf-8">
<title>Beispiel-Tutorial (example.com)</title>
</head>
<body>
<form action="welcome.php" method="post">Name:<input type="text" name="fname">Alter:<input type="text" name="age">
<input type="submit" value="Submit">
</form>
</body>
</html>
Wenn der Benutzer das obige Formular ausfüllt und auf die Absenden-Schaltfläche klickt, werden die Formulardaten an die PHP-Datei namens "welcome.php" gesendet:
Code der Datei welcome.php:
Willkommen<?php echo $_POST["fname"]; ?>!<br>Ihr Alter ist<?php echo $_POST["age"]; ?>Jahre alt.
Die über einen Browser aufgerufene Demo sieht wie folgt aus:

Wir werden die Variablen $_GET und $_POST in PHP im nächsten Kapitel erklären.
PHP: Abrufen von Dropdown-Menü-Daten
PHP-Dropdown-Menü (Einzelauswahl)
Im folgenden Beispiel legen wir drei Optionen für das Dropdown-Menü fest. Das Formular verwendet die GET-Methode, um Daten abzurufen. Ein leerer Wert des action-Attributs bedeutet, dass an das aktuelle Skript gesendet wird. Wir können den Wert des Dropdown-Menüs über das name-Attribut des select-Elements abrufen:
Code der Datei php_form_select.php:
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
if($q =='EXAMPLE') {
echo 'Beispiel-Tutorial<br>http://www.example.com';
} else if($q =='GOOGLE') {
echo 'Google-Suche<br>http://www.google.com';
} else if($q =='TAOBAO') {
echo 'Taobao<br>http://www.taobao.com';
}
} else {
?>
<form action="" method="get">
<select name="q">
<option value="">Website auswählen:</option>
<option value="EXAMPLE">Beispiel</option>
<option value="GOOGLE">Google</option>
<option value="TAOBAO">Taobao</option>
</select>
<input type="submit" value="Submit">
</form>
<?php
}
?>
PHP-Dropdown-Menü (Mehrfachauswahl)
Wenn das Dropdown-Menü eine Mehrfachauswahl ist (multiple="multiple"), können wir das selectname="q[]"festlegen, um Werte als Array zu erhalten. Im Folgenden wird die POST-Methode zum Übermitteln verwendet, und der Code lautet wie folgt:
Code der Datei php_form_select_mul.php:
<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {
$sites = array(
'EXAMPLE' => 'Beispiel-Tutorial: http://www.example.com',
'GOOGLE' => 'Google-Suche: http://www.google.com',
'TAOBAO' => 'Taobao: http://www.taobao.com',
);
foreach($q as $val) {
echo $sites[$val] . PHP_EOL;
}
} else {
?>
<form action="" method="post">
<select multiple="multiple" name="q[]">
<option value="">Wählen Sie eine Website:</option>
<option value="EXAMPLE">Beispiel</option>
<option value="GOOGLE">Google</option>
<option value="TAOBAO">Taobao</option>
</select>
<input type="submit" value="Submit">
</form>
<?php
}
?>
Radio-Button-Formular
In PHP-Formularen mit Radio-Buttons sind die Werte des name-Attributs gleich, während die value-Attribute unterschiedlich sind. Der Code lautet wie folgt:
Code der Datei php_form_radio.php:
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {
if($q =='EXAMPLE') {
echo 'Beispiel-Tutorial<br>http://www.example.com';
} else if($q =='GOOGLE') {
echo 'Google-Suche<br>http://www.google.com';
} else if($q =='TAOBAO') {
echo 'Taobao<br>http://www.taobao.com';
}
} else {
?><form action="" method="get">
<input type="radio" name="q" value="EXAMPLE" />Beispiel
<input type="radio" name="q" value="GOOGLE" />Google
<input type="radio" name="q" value="TAOBAO" />Taobao
<input type="submit" value="Absenden">
</form>
<?php
}
?>
Kontrollkästchen
PHP-Checkboxen können mehrere Werte auswählen:
Code der Datei php_form_select_checkbox.php:
<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {
$sites = array(
'EXAMPLE' => 'Beispiel-Tutorial: http://www.example.com',
'GOOGLE' => 'Google-Suche: http://www.google.com',
'TAOBAO' => 'Taobao: http://www.taobao.com',
);
foreach($q as $val) {
echo $sites[$val] . PHP_EOL;
}
} else {
?><form action="" method="post">
<input type="checkbox" name="q[]" value="EXAMPLE"> Beispiel<br>
<input type="checkbox" name="q[]" value="GOOGLE"> Google<br>
<input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br>
<input type="submit" value="Submit">
</form>
<?php
}
?>
Formularvalidierung
Wir sollten Benutzereingaben so weit wie möglich validieren (durch clientseitige Skripte). Die Validierung im Browser ist schneller und kann die Last auf dem Server reduzieren.
Wenn Benutzereingaben in die Datenbank eingefügt werden müssen, sollten Sie die Verwendung serverseitiger Validierung in Betracht ziehen. Eine gute Möglichkeit, Formulare auf dem Server zu validieren, besteht darin, die Formulardaten an die aktuelle Seite zu senden (asynchrones Absenden ist sogar noch besser), anstatt auf eine andere Seite umzuleiten. Auf diese Weise können Benutzer Fehlermeldungen auf derselben Formularseite erhalten, wodurch es für sie einfacher wird, Fehler zu erkennen.
Andere Erweiterungen