Я пытаюсь использовать этот почтовик и перенаправить его на страницу успеха / неудачи в зависимости от полей, которые вводит пользователь. Он работает и отправляет почту, а также перенаправляет на страницу успеха, когда все поля введены, но когда ничего не введено, он просто переходит на пустую страницу, но все еще отправляет почту?
Как я мог сделать эту работу, как задумано? В идеале я хотел бы, чтобы он просто направлял на ту же страницу и отображал сообщение об ошибке или об ошибке на странице, но я не знаю, как это сделать.
Мой код для моей почтовой программы ниже:
<?php
$name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$website = $_POST['website'];
$features = $_POST['features'];
$budget = $_POST['budget'];
$timeline = $_POST['timeline'];
$content = $_POST['content'];
$additional = $_POST['additional'];
$to = "[email protected]";
$subject = "Project Req: $company";
$body = "Name: $name \n\n Company Name: $company \n\n Email: $email \n\n Phone Number: $phone \n\n Website: $website \n\n Features: $features \n\n Budget: $budget \n\n Timeline: $timeline \n\n Content: $content \n\n Additional Info: $additional";
$from = $email;
if(!empty($_POST['name']) || !empty($_POST['email']) || !empty($_POST['phone']) || !empty($_POST['features']) || !empty($_POST['budget']) || !empty($_POST['timeline']) || !empty($_POST['content'])){
if (mail($to, $subject, $body, $headers)) {
header("Location: success.php");
} else {
header("Location: error.php");}
}
?>
Вы, кажется, не установили $ заголовки. Это может быть проблема, настройте его так, чтобы он отправлял его с $ заголовками
В вашем if
заявление, где вы проверяете, что вы получили все через POST
, вы должны использовать компаратор «и» &&
а не компаратор «или» ||
, В вашем случае условие будет истинным, если только один из POST
переменная не пустая — разве это то, что вы хотите?
Вы также должны проверить содержание POST
переменные до присваивая их значение вашим переменным в верхней части. Вы могли бы сделать что-то вроде предложенного Тибберсом.