email — PHP Mailer: Конкретные сообщения подтверждения, основанные на пустых полях

У меня есть контактная форма, которая отправляет данные с помощью AJAX для почтовой программы 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 = "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 "...";
}

Нет результатов.

0

Решение

Попробуйте спросить, является ли сообщение пустой строкой или одним пустым символом:

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

Другие решения

Спасибо, @Carmen. Это не сработало, но я нашел способ заставить это работать.

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector