Guten Morgen,
Entschuldigt bitte, dass ich mein Problem in einem neuen Thread wieder aufgreife, aber mein alter Beitrag wurde bereits in's Archiv verschoben.
Ich habe den Fehler nun gefunden, weiss aber nicht, warum er auftritt.
Hier der neue Code, nun in einer einzigen Datei:
<?php
global $HTTP_POST_VARS;
global $HTTP_GET_VARS;
$Laenge = array ("Name" => array ("min" => 3,
"max" => 30),
... weitere Elemente ...
...));
$Fehler = array ("Name" => array ("...",
... weitere Elemente ...
"..."),
... weitere Elemente ...
...));
$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"]))
{
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];
switch ($Feld_Name)
{
case "Name":
{
...
break;
}
case "eMail":
{
...
break;
}
...
}
}
}
}
if ($Fehlermeldung !== "")
echo $Fehlermeldung;
?>
Der Fehler liegt in der Erweiterung der Variablen $Fehlermeldung um die jeweilige Fehlermeldung:
$Fehlermeldung .= "<br>" . $Fehler [$Feld_Name][0];
Aber warum ?
Wenn ich beispielsweise alle Elemente des Array-Elementes "Name" ausgeben lasse, dann bekomme ich auch alle hinterlegten Werte am Bildschirm angezeigt:
for ($i = 0; $i < count ($Fehler ["Name"]); $i++)
echo $Fehler ["Name"][$i] . "<br>";
Ich hoffe sehr, dass Ihr mir bei dieser letzten Hürde helfen könnt.
Vielen Dank.
Gruss, Enrico