расположение заголовка не перенаправляется после отправки формы

0

Привет, моя форма не перенаправляется на мою страницу успеха после отправки. Сообщение действительно проходит, и я получаю тестовые письма. Однако моя форма не перенаправляется после отправки электронного письма. Я использую заголовок для перенаправления. Кто-нибудь может мне с этим помочь?

require_once('class.phpmailer.php');
session_start();

function ValidateEmail($email) {
$pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i';
  return preg_match($pattern, $email);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$nameError = '';
if (empty($_POST["name"])) {
$nameError = 'You must enter a name.';
} 
if (isset($_POST['captchaCode'],$_SESSION['random_txt']) && md5($_POST['captchaCode']) == $_SESSION['random_txt'])
{
  unset($_POST['captchaCode'],$_SESSION['random_txt']);
} else {
  echo 'captcha code was wrong';
  exit;
}
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$subject = $_POST['subject'];
$body = <<< _END_
<html>
<body>
<div id="container">
<div id="logo">
<a href="http://www.website.com"><img src="images/website.png" alt="website"></a>
</div>
Name: {$_POST['name']} <br>
Phone: {$_POST['phone']} <br>
Email: {$_POST['email']} <br>
Message: {$_POST['message']} <br>
</div>
</html>
_END_;

// if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$mail = new PHPMailer;
// $mail->SMTPDebug = 2;
// print_r($_POST);
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.office365.com";
$mail->Port = 587;
$mail->Username = "[email protected]";
$mail->Password = "password";

$mailto = "[email protected]";
$mailfrom = "[email protected]";
$mail->SetFrom($mailto, '');
$address = '[email protected]';
$mail->AddAddress($address, "The Site Name");

$mail->Subject  = $subject;
$mail->AltBody  = $body;
$mail->MsgHTML($body);

if(!$mail->Send()) {
    Header("Location: success.php");
}
}
Теги:
forms
redirect
header

1 ответ

0
Лучший ответ

Вы проверяете неправильное состояние. Если почта отправляется, то перенаправление. Так должно быть -

if($mail->Send()) {
    Header("Location: success.php");
    exit;
}
  • 1
    И не забывайте exit(); после header();
  • 0
    exit чтобы остановить выполнение остальной части кода.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню