Bib sagte:
Also wenn ich das so mit der if-Abfrage mache, dann kommt auf dem Bildschirm die Fehlermeldung "Fehler!" oder wie? Das wäre ja spitze, dann könnte ich bei jedem Feld eine eigene Fehlermeldung ausgeben lassen, je nachdem, was gerade passend ist.
Ja, es kommt "Fehler!", aber das Skript beendet sich. Wenn du mehrere Daten nacheinander prüfst wirst du nicht mehrere Fehlermeldungen sehen, sondern nur jeweils die erste. Du könntest aber zunächst die Meldungen ausgeben (mit echo() statt exit()) und abschließend das Skript tatsächlich beenden, wenn es einen Fehler gab, z.B. mit
$plz = $_POST["Plz"];
$email = $_POST["Email"];
$result_plz = preg_match("^\d{5}$", $plz);
$result_email = preg_match("^[a-zA-Z]([.]?([[:alnum:]_-]+)*)?@([[:alnum:]\-_]+\.)+[a-zA-Z]{2,4}$", $email);
if(!$result_plz) {
exit("Fehler, falsche PLZ!");
}
if(!$result_email) {
exit("Fehler, falsche E-Mail-Adresse");
}
if(!$result_plz||!$result_email) {
exit("Skript beendet, fehlerhafte Eingaben!");
}
Geht auch eleganter, tut aber seinen Zweck.
Bib sagte:
Die Prüfung soll erst nach Betätigung des "senden"-Knopfes erfolgen, daran wird der Fehler wohl liegen.
Deswegen gehört der Teil auch in den oberen Teil des Codes. Zudem würde ich den gesamten oberen Teil des Skripts in eine if-Funktion mit der Bedingung isset($_POST["abgeschickt"]) schreiben, damit das Skript wirklich nur abläuft, wenn abgeschickt wurde.
Weiters kannst du die ganzen "id"-Teile (ganz oben und beim action-Tag des Formulars) AFAICS löschen, die brauchst du eigentlich nicht wirklich.

Hilfe
Neues Thema
Antworten


Nach oben


