Hallo,
liebe Forenmitglieder!
Ich habe folgendes Problem, ich habe eigentlich auf einer Seite nur ein kleines Formular, und will dieses mit php überprüfen.
Dazu habe ich mir folgenden Code geschrieben:
Das Problem ist, dass die Variable
nach dem
durchgelaufen ist, leer ist. Die beiden "Debuging" Stellen geben folgendes wieder:
Es geht mir jetzt erst mal nur um den Fehler, das noch z.B. eine genauere Überprüfung fehlt ist jetzt gerade egal.
Außer jemand sagt, mein Ansatz ist komplett schwachsinnig, aber ich wollte halt nicht jedes Feld mit if-else abfragen, deshalb die übergebenen Werte.
Ich wette ist ist irgendein total dämlicher Denkfehler, aber ich komme einfach gerade nicht frauf. Ich hoffe ihr könnt mir helfen.
MfG,
Robin
liebe Forenmitglieder!
Ich habe folgendes Problem, ich habe eigentlich auf einer Seite nur ein kleines Formular, und will dieses mit php überprüfen.
Dazu habe ich mir folgenden Code geschrieben:
PHP-Code:
<?php
$error = array(); // false = Wert ist vorhanden
$formdata = array();
if($_SERVER['REQUEST_METHOD']=='POST') {
function checkForm($fields, $required) {
foreach($fields as $value) {
if(isset($_POST[$value]) && $_POST[$value]!="") {
$error[$value] = false;
$temp = $_POST[$value];
$temp = clean($temp);
$formdata[$value] = $temp;
}
elseif(!(in_array($value, $required))) {
$error[$value] = false;
}
else {
$error[$value] = true;
}
}
if(!(in_array(true, $error))) {
//Mail#
//redirect
}
//DEBUG
echo "DEBUG in Funktion </br>";
var_dump($error);
echo "</br>";
}
function clean($wert) {
$cleaned = htmlentities($wert);
//Mehr Überprüfung notwendig?!
}
checkForm($felder=["vorname", "nachname", "email", "telefon", "nachricht"],$benoetigt=["vorname", "nachname", "email"]);
//DEBUG
echo "DEBUG nach Aufruf </br>";
var_dump($error);
}
?>
PHP-Code:
$error
PHP-Code:
checkForm()
PHP-Code:
DEBUG in Funktion
array(5) { ["vorname"]=> bool(true) ["nachname"]=> bool(false) ["email"]=> bool(false) ["telefon"]=> bool(false) ["nachricht"]=> bool(false) }
DEBUG nach Aufruf
array(0) { }
Außer jemand sagt, mein Ansatz ist komplett schwachsinnig, aber ich wollte halt nicht jedes Feld mit if-else abfragen, deshalb die übergebenen Werte.
Ich wette ist ist irgendein total dämlicher Denkfehler, aber ich komme einfach gerade nicht frauf. Ich hoffe ihr könnt mir helfen.
MfG,
Robin
Kommentar