Hallo Leute,
Ich habe für leere Formularfelder spezifische Fehlermeldungen, je nachdem welches Feld leer war.
Da für das Formular eh nur wenige Felder definiert sind und alle Pflichtfelder sind, möchte ich das ab 2 nicht eingetragenen Feldern nicht mehr die spezifische Fehlermeldung sondern "Bitte füllen Sie alle Felder aus ausgegeben wird".
Wie ich das mit if-else machen könnte weiß ich, allerdings wären dass zu viele if-else Abfragen im allg und auch zu tief verschachtelt (siehe Code),
wie ich allerdings bewerkstelligen könnte dass geprüft wird ob mehr als ein Feld leer ist weiß ich nicht weil ich in PHP nicht stark genug bin.
Ich denke am leichtesten Wäre die Fehlermeldung in ein Array umzuwandeln und abzufragen wie die length-Eigenschaft ist, wenn größer 1 dann...
oder hat jmd eine bessere Idee, leider weiß ich nicht wie ich das mit dem Array umsetzen könnte und ob es überhaupt diese Eigenschaft wie in JavaScript gibt.
danke im voraus für
PS: Für verbesserunsvorschläge im vorhandenen Code wäre ich auch sehr dankbar, obwohl dieser zumindest einwandfrei funktioniert
Ich habe für leere Formularfelder spezifische Fehlermeldungen, je nachdem welches Feld leer war.
Da für das Formular eh nur wenige Felder definiert sind und alle Pflichtfelder sind, möchte ich das ab 2 nicht eingetragenen Feldern nicht mehr die spezifische Fehlermeldung sondern "Bitte füllen Sie alle Felder aus ausgegeben wird".
Wie ich das mit if-else machen könnte weiß ich, allerdings wären dass zu viele if-else Abfragen im allg und auch zu tief verschachtelt (siehe Code),
wie ich allerdings bewerkstelligen könnte dass geprüft wird ob mehr als ein Feld leer ist weiß ich nicht weil ich in PHP nicht stark genug bin.
Ich denke am leichtesten Wäre die Fehlermeldung in ein Array umzuwandeln und abzufragen wie die length-Eigenschaft ist, wenn größer 1 dann...
oder hat jmd eine bessere Idee, leider weiß ich nicht wie ich das mit dem Array umsetzen könnte und ob es überhaupt diese Eigenschaft wie in JavaScript gibt.
PHP-Code:
function formverarbeiten()
{
isset($_POST['name']) && is_string($_POST['name']) ? $name = stripslashes(ucwords(trim(htmlspecialchars($_POST['name'])))) : $name= '';
isset($_POST['tel']) && is_string($_POST['tel']) ? $tel = stripslashes(trim(htmlspecialchars($_POST['tel']))) : $tel= '';
isset($_POST['email']) && is_string($_POST['email']) ? $email = stripslashes(trim(htmlspecialchars($_POST['email']))) : $email= '';
isset($_POST['message']) && is_string($_POST['message']) ? $message = wordwrap(stripslashes(trim(htmlspecialchars($_POST['message']))), 70) : $message= '';
$fehler = '';
if (empty($name)) {
$fehler = 'Bitte geben Sie Ihren Namen an. <br />';
}
if (empty($tel)) {
$fehler .= 'Bitte geben Sie Ihre Telefonnummer an. <br />';
}
if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
if (empty($email)){
$fehler .= 'Bitte geben Sie Ihre E-Mail-Adresse an. ';
}
else {
$fehler .= 'Die angegebene E-Mail-Adresse hat nicht das richtige Format, <br />bitte prüfen Sie auf eventuelle Tippfehler. ';
}
}
if (empty($message)) {
$fehler .= 'Bitte füllen Sie das Nachrichtenfeld aus. ';
}
if (strlen($fehler) > 0) {
formausgeben($name, $tel, $email, $message, $fehler);
} else {
echo '<p class="success">Kontaktformular erfolgreich versendet!<br /><br /><br />Sehr geehrte/r Frau/Herr '.$name .',<br /><br />
wir haben Ihre Anfrage erhalten und werden uns sobald wie möglich mit Ihnen in Verbindung setzen.</p>';
/* Mailversand */
danke im voraus für
PS: Für verbesserunsvorschläge im vorhandenen Code wäre ich auch sehr dankbar, obwohl dieser zumindest einwandfrei funktioniert
Kommentar