Enrico: Formulare prüfen: Fehler gefunden, aber warum ?

Beitrag lesen

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