Hallo Felix,
Erstmal danke für Deine Antwort.
Hier der komplette Code, dann dürfte auch der Sachverhalt mit dem nullten Element klar werden.
<?php
global $HTTP_POST_VARS; global $HTTP_GET_VARS;
$Laenge = array ("Name" => array ("min" => 3, "max" => 30),
"eMail" => array ("min" => 5, "max" => 50),
"Homepage" => array ("min" => 4, "max" => 50),
"Text" => array ("min" => 20, "max" => 1000));
$Fehler = array ("Name" => array ("Du musst Deinen Namen eingeben", "Der Name muss mindestens " . $Laenge ["Name"]["min"] . " Zeichen lang sein", "Der Name darf maximal " . $Laenge ["Name"]["max"] . " Zeichen lang sein", "Das Zeichen # ist nicht zulässig", "Die Zeichen # sind nicht zulässig"),
/*
Die Raute soll später noch durch die einzelnen fehlerhaften Zeichen ersetzt werden
*/
"eMail" => array ("Du musst Deine eMail-Adresse eingeben", "Deine eMail-Adresse muss mindestens " . $Laenge ["eMail"]["min"] . " Zeichen lang sein", "Deine eMail-Adresse darf maximal " . $Laenge ["eMail"]["max"] . " Zeichen lang sein", "Deine eMail-Adresse ist ungültig", "Dein eMail-Server hat Deine eMail-Adresse zurückgewiesen", "Dein eMail-Server hat nicht geantwortet", "Es konnte keine Verbindung zu Deinem eMail-Server hergestellt werden"),
"Homepage" => array ("Du musst Deine Homepage-Adresse eingeben", "Deine Homepage-Adresse muss mindestens " . $Laenge ["Homepage"]["min"] . " Zeichen lang sein", "Deine Homepage-Adresse darf maximal " . $Laenge ["Homepage"]["max"] . " Zeichen lang sein"),
"Text" => array ("Du musst Deinen Text eingeben", "Dein Text muss mindestens " . $Laenge ["Text"]["min"] . " Zeichen lang sein", "Dein Text darf maximal " . $Laenge ["Text"]["max"] . " Zeichen lang sein"));
$Fehlermeldung = "";
$Methode = (isset ($HTTP_POST_VARS)) ? "Post" : "Get"; $Formular = ($Methode == "Post") ? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($Formular as $Feld_Name => $Feld_Inhalt) { $Fehler = false;
if (isset ($Laenge [$Feld_Name]["min"])) { $Feld_Inhalt = str_replace ("\n", "<br>", $Feld_Inhalt); $Feld_Inhalt = str_replace ("\t", "", $Feld_Inhalt); $Feld_Inhalt = str_replace ("\r", "", $Feld_Inhalt); $Feld_Inhalt = preg_replace ("/<SCRIPT(.?)>(.?)</SCRIPT(.*?)>/i", "", $Feld_Inhalt);
if (strlen ($Feld_Inhalt) === 0) { if ($Pflichtfeld [$Feld_Name] == "Ja") { $Fehlermeldung .= "<br>" . $Fehler [$Feld_Name][0]; $Fehler == true; } }
if ($Fehler === false) { if (strlen ($Feld_Inhalt) < $Laenge [$Feld_Name]["min"]) $Fehlermeldung .= "<br>" . $Fehler [$Feld_Name][1]; else if (strlen ($Feld_Inhalt) > $Laenge [$Feld_Name]["max"]) $Fehlermeldung .= "<br>" . $Fehler [$Feld_Name][2];
... swizch und weitere Prüfungen ...
} } }
if ($Fehlermeldung !== "") echo $Fehlermeldung;
?>
Die Definition der Pflichtfelder eines Formulares lege ich in einer eigenen Datei fest:
$Pflichtfeld = array ("Name" => "Ja", "eMail" => "Nein", "Homepage" => "Nein", "Text" => "Ja");
Ich hoffe, das hilft Dir (und damit auch mir :o) ) weiter
Gruss, Enrico