Hallo,
jetzt ist es soweit, dass ich absolut nicht mehr mit meiner serverseitigen Überprüfung von Formularfeldern weiterkomme.
Mein Problem greift das Problem meines Threats "Pflichtfelder feststellen" auf, bezieht sich nun aber auch auf die gezielte Übernahme der Feldinhalte der einzelnen Formularfelder.
Hier der zum Teil erheblich reuzierte Code:
=-=-=-=-=-=-=-=-=
Datei Eintrag.php
=-=-=-=-=-=-=-=-=
<?php
... weiterer Code (hier nicht von Bedeutung) ...
echo '<form method="post" action="' . $PHP_SELF . '">
<input type="hidden" name="Aktion" value="Speichern">
<input type="hidden" name="Felder" value="$Name,$eMail,$Homepage,$Text">
<input name="Name" ...>
<input name="eMail" ...>
<input name="Homepage" ...>
<textarea name="Text"></textarea>
... weiterer Code (hier nicht von Bedeutung) ...
</form>';
?>
-=-=-=-=-=-=
Validierung:
-=-=-=-=-=-=
$Pflichtfeld = array ("Name" => "Ja",
"eMail" => "Nein",
"Homepage" => "Nein",
"Text" => "Ja"); // [1]
$Array_Felder = explode (",", $_POST ['Felder']); // [2]
for ($i = 0; $i < count ($Array_Felder); $i++)
{
$Array_Felder [$i] = isset ($_POST [$Array_Felder [$i]]) ? $_POST [$Array_Felder [$i]] : ""; // [3]
if (empty ($Array_Felder [$i])) // [4]
{
if ($Pflichtfeld [$Array_Felder [$i]] == "Ja") // [5]
echo $Array_Felder [$i]] . " muss ausgefüllt werden<br>";
}
}
[1] Hier wird das Formular-spezifische Array $Pflichtfeld definiert.
[2] Hier wird der Inhalt des versteckten Feldes namens "Felder" aufgesplittet. So erhalte ich ein Array mit allen Formularfeldern, die zur Verfügung stehen (Pflichtfelder und optionale Felder, also in diesem Fall "$Name", "eMail", "$Homepage" und "$Text").
[3] Hier soll jedes Element des Arrays Felder (siehe Punkt 1) durchlaufen und entweder mit dem Inhalt gefüllt oder auf Null gesetzt werden
[4] Hier soll überprüft werden, ob die einzelnen Elemente des Arrays $Array_Felder leer sind
[5] Jetzt wird geprüft, ob das Arrayelement $Pflichtfeld [$Array_Felder [$i]] ein Pflichtfeld darstellt oder nicht.
{
echo $Array_Felder [$i] . " muss eingegeben werden";
}
}
}
Welche(r) Fehler gilt es noch auszumerzen ?
Ich hoffe, Ihr könnt mir weiterhelfen.
Schon mal vielen Dank,
Gruss, Enrico