In diesem Kapitel stellen wir vor, wie Sie Namen, E-Mails und URLs überprüfen.
Der folgende Code verwendet eine einfache Methode, um zu erkennen, ob das Namensfeld Buchstaben und Leerzeichen enthält. Wenn der Namensfeldwert unzulässig ist, wird eine Fehlermeldung ausgegeben:
$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Nur Buchstaben und Leerzeichen erlaubt"; }
preg_match – führt den Abgleich regulärer Ausdrücke durch. Grammatik: int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] ) Durchsucht die Betreffzeichenfolge nach einer Übereinstimmung mit dem durch Muster angegebenen regulären Ausdruck. Wenn Übereinstimmungen bereitgestellt werden, wird es mit den Ergebnissen der Suche gefüllt. $matches[0] enthält Text, der mit dem gesamten Muster übereinstimmt, $matches[1] enthält Text, der mit dem ersten erfassten Untermuster in Klammern übereinstimmt, und so weiter. |
Der folgende Code prüft auf einfache Weise, ob die E-Mail-Adresse legitim ist. Wenn die E-Mail-Adresse illegal ist, wird eine Fehlermeldung ausgegeben:
$email = test_input($_POST["email"]);if (!preg_match("/([w-]+@[w-]+.[w-]+)/" ,$email)) { $emailErr = "Ungültiges E-Mail-Format" }
Der folgende Code prüft, ob die URL-Adresse zulässig ist (der folgende reguläre Ausdruck wird in der URL ausgeführt, die Bindestriche enthält: „-“). Wenn die URL-Adresse ungültig ist, wird eine Fehlermeldung ausgegeben:
$website = test_input($_POST["website"]);if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a-z0- 9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) { $websiteErr = „Ungültige URL-Adresse“ }
Der Code sieht so aus:
<?php// Variablen definieren und standardmäßig auf leere Werte setzen $nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = ""; if ($_SERVER ["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name ist erforderlich" } else { $name = test_input($_POST["name"]); // Prüfe, ob der Name nur Buchstaben und Leerzeichen enthält if (!preg_match("/^[a-zA-Z ]*$/",$name) ) { $nameErr = "Nur Buchstaben und Leerzeichen erlaubt"; } } if (empty($_POST["email"])) { $emailErr = "E-Mail ist erforderlich"; test_input($_POST["email"]); // Prüfen Sie, ob die E-Mail legal ist if (!preg_match("/([w-]+@[w-]+.[w- ]+ )/",$email)) { $emailErr = "Illegales E-Mail-Format"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // Prüfen Sie, ob die URL-Adresse zulässig ist if (!preg_match("/b(?:(?:https?|ftp)://|www.) [- a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$ Website) ) { $websiteErr = "Ungültige URL-Adresse"; } } if (empty($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] } if (empty($_POST["gender"])) { $genderErr = "Geschlecht ist erforderlich" } else { $gender = test_input($_POST["gender"]); }}?>