2017-06-09 18 views
0

AJAXを使用してデータをPHPメーラーに送信するコンタクトフォームがあります。電子メールが送信されると、確認メッセージがユーザーに表示されます。それはうまくいく。私の問題はどのフィールドにはが入っているかに基づいて確認メッセージをカスタマイズする方法です。PHPメーラー:特定の確認空のフィールドに基づくメッセージ

フォームには4つのフィールドがあります。

1)ニュースレターの購読を希望されているユーザーは、名前(必須)、件名(オプションリスト:デフォルトでは「ニュースレターの購読」)、メール(必須)、メッセージです。 [名前]と[メール]フィールドのみが入力されます。 確認メッセージA

2)ユーザーから電子メールが送信されます。 「名前」、「メール」、「メッセージ」が入力されます。 確認メッセージB

これは私の現在のコードであり、一般的な確認メッセージを示しています。

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...! 
} 

をノー運と、以下の構造(ELSEIF)を試みました。

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

結果はありません。

答えて

0

は、メッセージが空の文字列または1つの空白文字であるかどうか尋ねるようにしてください:

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

は、@Carmen、ありがとうございました。それは動作しませんでしたが、私はそれを動作させる方法を見つけました。

if (empty($_POST['message'])) { 
... 
} 
関連する問題