@Mantigoma

В плагин phpmailer настроить переадресацию при отправке формы?

Подскажите пожалуйста как сделать, чтобы после удачной отправки формы была переадресация на страницу благодарности в phpmailer, сейчас форма работает, письма приходят, но после отправки перебрасывает на страницу с таким текстом
{"message":"\u0414\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b!"}
Вот код файла обработчика
<?php
	use PHPMailer\PHPMailer\PHPMailer;
	use PHPMailer\PHPMailer\Exception;

	require 'phpmailer/src/Exception.php';
	require 'phpmailer/src/PHPMailer.php';

	$mail = new PHPMailer(true);
	$mail->CharSet = 'UTF-8';
	$mail->setLanguage('ru', 'phpmailer/language/');
	$mail->IsHTML(true);

	//От кого письмо
	$mail->setFrom('info@ms.com', 'Заказ потолков');
	//Кому отправить
	$mail->addAddress('info@gmail.com');
	//Тема письма
	$mail->Subject = 'Заказ обратного звонка';


	//Тело письма
	$body = '<h1>Заказ обратного звонка</h1>';
	
	if(trim(!empty($_POST['user_name']))){
		$body.='<p><strong>Имя:</strong> '.$_POST['user_name'].'</p>';
	}
	if(trim(!empty($_POST['user_phone']))){
		$body.='<p><strong>Телефон:</strong> '.$_POST['user_phone'].'</p>';
	}

	$mail->Body = $body;

	//Отправляем
	if (!$mail->send()) {
		$message = 'Ошибка';
	} else {
		$message = 'Данные отправлены!';
	}

	$response = ['message' => $message];

	header('location: thank-you.html');
	echo json_encode($response);
?>

Я пробовал, что то удалять, что то подставлять, ничего не меняется, почта приходит, но открывается эта ненужная страница с текстом. Помогите пожалуйста.
  • Вопрос задан
  • 315 просмотров
Решения вопроса 1
thoozu
@thoozu
Веб-разработчик
У вас после заголовка с переадресацией header('location: thank-you.html') идет вывод ответа echo json_encode($response), поэтому не срабатывает переадресация на нужную страницу

Сделайте вот так, при этом удалив последние три строки в коде:
if (!$mail->send()) {
    $message = 'Ошибка';
    echo $message;
} else {
    header('location: thank-you.html');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы