2017-06-09 10 views
0

Ich habe ein Kontaktformular, das die Daten mit AJAX an einen PHP-Mailer übermittelt. Nachdem die E-Mail gesendet wurde, wird dem Benutzer eine Bestätigungsnachricht angezeigt. Es läuft gut. Mein Problem ist , wie Sie die Bestätigungsmeldung anpassen, basierend darauf, welche Felder ausgefüllt wurden.PHP Mailer: Spezifische Bestätigungen Nachrichten basierend auf leeren Feldern

Das Formular hat vier Felder. Name (erforderlich), Betreff (Optionsliste: Standardmäßig 'Newsletter abonnieren'), E-Mail (erforderlich) und Nachricht, und es gibt zwei Fälle:

1) Der Benutzer möchte nur den Newsletter abonnieren. Nur die Felder 'Name' und 'E-Mail' sind ausgefüllt. Bestätigungsmeldung A.

2) Der Benutzer sendet eine E-Mail. 'Name', 'Email' und 'Nachricht' sind ausgefüllt. Bestätigungsmeldung B.

Dies ist mein aktueller Code, zeigt eine allgemeine Bestätigungsmeldung:

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $name = strip_tags(trim($_POST["name"])); 
    $asunto = strip_tags(trim($_POST["asunto"])); 
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); 
    $message = trim($_POST["message"]); 

    if (empty($name) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     http_response_code(400); 
     echo "¡Error 400 bla bla...! 
     exit; 
    } 

    $recipient = "[email protected]"; 
    $subject = "Nauta $name"; 
    $email_content = "Nombre: $name\n"; 
    $email_content = "Asunto: $asunto\n"; 
    $email_content .= "Email: $email\n\n"; 
    $email_content .= "Mensaje:\n$message\n"; 
    $email_headers = "From: $name <$email>"; 

    if (mail($recipient, $subject, $email_content, $email_headers)) { 
     http_response_code(200);   
     echo "¡Thank you! bla bla..."; 
    } 
    else { 
     http_response_code(500); 
     echo "¡Error 500 bla bla...! 
    } 
} 
else { 
    http_response_code(403); 
    echo "¡Error 403 bla bla...! 
} 

ich die folgende Struktur versucht (elseif) ohne Glück.

if () { 
    echo "..."; 
} elseif () { 
    echo "..."; 
} else { 
    echo "..."; 
} 

Keine Ergebnisse.

Antwort

0

Versuchen Sie zu fragen, ob Nachricht eine leere Zeichenfolge oder ein Leerzeichen ist:

if ($_POST['message']!="") { 
    ... 
} 
0

Danke, @Carmen. Es hat nicht funktioniert, aber ich habe den Weg gefunden, es zum Laufen zu bringen.

if (empty($_POST['message'])) { 
... 
} 
Verwandte Themen