У меня типичный скрипт mail.php, который использует функцию mail (). После того, как пользователь вводит информацию в типичную форму HTML, у меня есть функция mail (), отправляющая электронное письмо на нужную электронную почту [с почтой ($ email_of_client) и т. Д. И т. Д.],
Мой вопрос таков:
После отправки электронной почты я хочу, чтобы пользователь перенаправлялся на страницу ThankYou (запускался под WordPress, поэтому он не имеет расширений .html или .php)
Я попробовал следующее:
<meta http-equiv="refresh" content="0;URL=http://my-site-here.com/thankyou">
Это делает работу, но показывает пустой экран на миллисекунду. Мне было интересно, можно ли сразу сделать перенаправление после ввода пользователем данных и нажатия на отправку.
Большое спасибо,
Amit
Вместо использования метаобновления используйте
header('Location: http://my-site-here.com/thankyou'); exit();
Не забывайте о выходе (), если вы не хотите выполнять то, что после этой строки
Это работает, если вы не отправили ничего в браузер. Если вам нужно было отправить что-либо в браузер, это решение:
ob_start(); echo "sending something to the browser"; header('Location: http://my-site-here.com/thankyou'); ob_end_clean(); exit();
Вы можете перенаправлять с помощью HTTP-заголовков. Используйте что-то вроде этого:
<?php header('Location: http://www.example.com/'); ?>
Обратите внимание, что вы не можете получить какой-либо вывод перед вызовом заголовка (если у вас нет буферизации вывода).
См. http://php.net/manual/en/function.header.php для получения подробной информации о функции и общей информации о заголовках http.
Чтобы добавить к другим ответам, всегда рекомендуется отправлять код состояния;
header('HTTP/1.1 302 Found'); header('Location: http://example.com');