PHP Formular - Pflichtfelder


In diesem Kapitel stellen wir vor, wie man Pflichtfelder in Formularen und Fehlermeldungen festlegt.


PHP - Pflichtfelder

Im vorherigen Kapitel haben wir die Formularvalidierungsregeln vorgestellt. Wir können sehen, dass die Felder "Name", "E-Mail" und "Geschlecht" erforderlich sind und jedes Feld nicht leer sein darf.

Feld Validierungsregeln
Name Erforderlich. + Darf nur Buchstaben und Leerzeichen enthalten
E-Mail Erforderlich. + Muss eine gültige E-Mail-Adresse enthalten (enthält "@" und ".")
URL Optional. Falls vorhanden, muss es eine gültige URL enthalten
Hinweise Optional. Mehrzeiliges Feld (textarea).
Geschlecht Erforderlich. Es muss eines ausgewählt werden.

In den vorherigen Kapiteln waren alle Eingabefelder optional.

Im folgenden Code haben wir einige neue Variablen hinzugefügt: $nameErr, $emailErr, $genderErr und $websiteErr. Diese Fehlervariablen werden bei den Pflichtfeldern angezeigt. Wir haben außerdem eine if-else-Anweisung für jede $_POST-Variable hinzugefügt. Diese Anweisungen prüfen, ob die $_POST-Variable leer ist (mithilfe der PHP-Funktion empty()). Wenn sie leer ist, wird die entsprechende Fehlermeldung angezeigt. Wenn sie nicht leer ist, werden die Daten an die Funktion test_input() übergeben:

<?php
// 定义变量并默认设为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "名字是必需的。";
  } else {
    $name = test_input($_POST["name"]);
  }

  if (empty($_POST["email"])) {
    $emailErr = "邮箱是必需的。";
  } else {
    $email = test_input($_POST["email"]);
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
  }

  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["gender"])) {
    $genderErr = "性别是必需的。";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - Fehlermeldungen anzeigen

Im folgenden HTML-Beispielformular haben wir für jedes Feld einige Skripte hinzugefügt. Jedes Skript zeigt eine Fehlermeldung an, wenn die eingegebenen Informationen falsch sind. (Wenn der Benutzer das Formular absendet, ohne die Informationen auszufüllen, wird eine Fehlermeldung ausgegeben):

<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> 
   名字: <input type="text" name="name">
   <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
   E-mail: <input type="text" name="email">
   <span class="error">* <?php echo $emailErr;?></span>
   <br><br>
   网址: <input type="text" name="website">
   <span class="error"><?php echo $websiteErr;?></span>
   <br><br>
   备注: <textarea name="comment" rows="5" cols="40"></textarea>
   <br><br>
   性别:
   <input type="radio" name="gender" value="female">女
   <input type="radio" name="gender" value="male">男
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit"> 
</form>

Andere Erweiterungen