Редирект в PHP - PullRequest
       33

Редирект в PHP

0 голосов
/ 15 июля 2010

У меня есть типичный скрипт mail.php, который использует функцию mail (). После того, как пользователь вводит информацию в типичную HTML-форму, у меня есть функция mail (), отправляющая электронное письмо на желаемую почту [с mail ($ email_of_client) и т. Д.

Мой вопрос такой:

После того, как письмо отправлено, я хочу, чтобы пользователь был перенаправлен на страницу ThankYou (запускается под WordPress, поэтому он не имеет расширений .html или .php)

Я попробовал следующее:

<meta http-equiv="refresh" content="0;URL=http://my-site-here.com/thankyou">

Это делает работу, но показывает пустой экран в течение миллисекунды. Мне было интересно, можно ли сразу же выполнить перенаправление после того, как пользователь введет данные и нажмет кнопку «Отправить».

Большое спасибо,

Amit

Ответы [ 3 ]

4 голосов
/ 15 июля 2010

Вместо использования мета-обновления, используйте

header('Location: http://my-site-here.com/thankyou');
exit();

Не забывайте о exit (), если вы не хотите выполнять то, что следует после этой строкиничего не отправлено в браузер.Если вам нужно было что-то отправить в браузер, решение:

ob_start();
echo "sending something to the browser";
header('Location: http://my-site-here.com/thankyou');
ob_end_clean();
exit();
2 голосов
/ 15 июля 2010

Вы можете сделать перенаправление, используя HTTP-заголовки.Используйте что-то вроде этого:

<?php
  header('Location: http://www.example.com/');
?>

Обратите внимание, что у вас не может быть никакого вывода до вызова заголовка (если у вас нет буферизации вывода).

См. http://php.net/manual/en/function.header.php для получения подробной информации офункция и общая информация о заголовках http.

0 голосов
/ 15 июля 2010

Чтобы добавить к другим ответам, всегда полезно также отправить код состояния;

header('HTTP/1.1 302 Found');
header('Location: http://example.com'); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...