PHP 邮件程序:基于空字段的特定确认消息
PHP Mailer: Specific Confirmations Messages based on Empty Fields
我有一个联系表,它使用 AJAX 将数据提交给 PHP 邮件程序。电子邮件发送后,将向用户显示一条确认消息。它运作良好。我的问题是如何根据填写的字段自定义确认消息。
表单有四个字段。姓名(必填),主题(选项列表:默认'Subscribe to Newsletter'),电子邮件(必填)和消息,有两种情况:
1) 用户只是想订阅时事通讯。仅填写 'Name' 和 'Email' 字段。 确认消息A.
2) 用户发送电子邮件。 'Name'、'Email' 和 'Message' 被填充。 确认消息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 = "name@domain.com";
$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 "...";
}
没有结果。
尝试询问message是空字符串还是一个空白字符:
if ($_POST['message']!="") {
...
}
谢谢@Carmen。它没有用,但我找到了让它工作的方法。
if (empty($_POST['message'])) {
...
}
我有一个联系表,它使用 AJAX 将数据提交给 PHP 邮件程序。电子邮件发送后,将向用户显示一条确认消息。它运作良好。我的问题是如何根据填写的字段自定义确认消息。
表单有四个字段。姓名(必填),主题(选项列表:默认'Subscribe to Newsletter'),电子邮件(必填)和消息,有两种情况:
1) 用户只是想订阅时事通讯。仅填写 'Name' 和 'Email' 字段。 确认消息A.
2) 用户发送电子邮件。 'Name'、'Email' 和 'Message' 被填充。 确认消息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 = "name@domain.com";
$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 "...";
}
没有结果。
尝试询问message是空字符串还是一个空白字符:
if ($_POST['message']!="") {
...
}
谢谢@Carmen。它没有用,但我找到了让它工作的方法。
if (empty($_POST['message'])) {
...
}