У меня проблема с перенаправлением после отправки письма с подтверждением с PHPMailer
, Пользователь не перенаправляется на memberIndex.php
,
Я пробовал с:
`$mail->Send();
header("Location:../memberIndex.php");
exit();`
Также отключаем отладку с помощью:
`$mail->SMTPDebug = 0;`
И все комбинации с ob_start/flush/clean
и т.п.
Замечания: Когда я покинул тело Почты ($mail->Body
) пусто, отправляет электронное письмо и перенаправляет как следует. В противном случае он остается на странице регистрации.
В теле у меня есть несколько HTML-тегов и текстов. Может быть, тело блокирует перенаправление?
Вот мой код, где я создаю письмо:
require '../../PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->SMTPDebug = 0;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'host'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'username'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->setFrom('info@test.com', 'test');
$mail->addAddress('test@test.com'); // Add a recipient$mail->isHTML(true); // Set email format to HTML
$mail->AddEmbeddedImage('../img/text_dark.png', 'cs');
$mail->Subject = 'Hi Customer!';
$body = 'test';
$mail->Body = $body;
$mail->Send();
header("Location:../memberIndex.php");
exit();
?>
заворачивать $mail->send()
по крайней мере (попробуйте … catch будет лучше) в блоке if, например:
if(!$mail->send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
header("Location:../memberIndex.php");
}
чтобы понять, что может пойти не так.
Также посмотрите в PHP заголовок руководства. Самое главное не иметь любой вывод перед отправкой заголовка. Нет пробелов, нет ошибок, нет ничего.
Других решений пока нет …