2017-06-09 43 views
0

我有一个联系表单,它使用AJAX将数据提交给PHP邮件程序。一旦电子邮件被发送,用户就会看到确认信息。它运作良好。我的问题是如何根据哪些字段已填充来自定义确认消息。PHP梅勒:基于空字段的特定确认消息

该表格有四个字段。名称(必填),主题(选项列表:默认为'订阅新闻'),电子邮件(必填)和消息,并且有两种情况:

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

试着问如果消息是一个空字符串或一个空白字符:

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

谢谢你,@Carmen。它没有工作,但我找到了使它工作的方法。

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