Mahlzeit!
ich prüfe meine Felder wie folgt:
$errors = array();
if(empty($_POST['name'])) {
$errors[] = "Bitte geben Sie Ihren Namen an";
}if(empty($_POST['email'])){
$errors[] = "Bitte geben sie Ihre eMail Adresse an";
} elseif (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false) {
$errors[] = "Bitte geben Sie ein gültige eMail Adresse an";
}if(empty($_POST['betreff'])){
$errors[] = "Bitte geben Sie einen Betreff an";
}
>
> Dieses funktioniert auch,
Gut, die Validate-Filter hast du ja schon mal gefunden. ;-)
Wichtig wären aber ggf. auch die [Sanitize-Filter](http://www.php.net/manual/de/filter.filters.sanitize.php).
Und du solltest eine sog. "mail header injection" oder auch "[E-Mail-Injection](http://de.wikipedia.org/wiki/E-Mail-Injection)" vermeiden.
> aber was ist wenn ich mehr als 10 / 20 Felder habe, der Code wird sau lang.
Hehe ..., ein Grund, warum man sich ggf. auf das Nötigste bei einem Kontaktformular beschränken sollte (muss es bspw. ein Eingabefeld für den Betreff geben?).
> Kann man diese prüfen etwas kurzer machen bzw. mit einer Funktion? Ich kenne mich da leider überhaupt nicht aus. Nur ich merke, es kommt sehr viel Schreibarbeit auf mich zu.
Ja, du kannst ja bspw. alle Eingaben durch eine Funktion jagen, die mögliche Injektionen "rausfiltert".
> Vielleicht gibt es ja eine Lösung.
Bestimmt sogar mehrere ...! ;-)
Gruß Gunther