Как в PHP реализовать переход на другую страницу?
Предположим, что вы хотите, чтобы пользователям, которые переходят на страницу https://example.com/initial.php отображалась страница https://example.com/final.php . Возникает вопрос как в PHP реализовать редирект на другую страницу?
Это можно сделать с помощью несколько методов PHP , JavaScript и HTML . В этой статье мы расскажем о каждом из методов, которые можно использовать для PHP перенаправления на другую страницу.
Вот несколько переменных, которые мы будем использовать:
Использование функции PHP header() для редиректа URL-адреса
Если хотите добавить редирект с initial.php на final.php , можно поместить на веб-странице initial.php следующий код. Он отправляет в браузер новый заголовок location :
Здесь мы используем PHP-функцию header() , чтобы создать редирект. Нужно поместить этот код перед любым HTML или текстом. Иначе вы получите сообщение об ошибке, связанной с тем, что заголовок уже отправлен. Также можно использовать буферизацию вывода, чтобы не допустить этой ошибки отправки заголовков. В следующем примере данный способ перенаправления PHP показан в действии:
Чтобы выполнить переадресацию с помощью функции header() , функция ob_start() должна быть первой в PHP-скрипте . Благодаря этому не будут возникать ошибки заголовков.
В качестве дополнительной меры можно добавить die() или exit() сразу после редиректа заголовка, чтобы остальной код веб-страницы не выполнялся. В отдельных случаях поисковые роботы или браузеры могут не обращать внимания на указание в заголовке Location . Что таит в себе потенциальные угрозы для безопасности сайта:
Чтобы прояснить ситуацию: die() или exit() не имеют отношения к редиректам. Они используются для предотвращения выполнения остальной части кода на веб-странице.
При PHP перенаправлении на страницу рекомендуется использовать абсолютные URL-адреса при указании значения заголовка Location . Но относительные URL-адреса тоже будут работать. Также можно использовать эту функцию для перенаправления пользователей на внешние сайты или веб-страницы.
Вывод кода JavaScript-редиректа с помощью функции PHP echo()
Это не является чистым PHP-решением . Тем не менее, оно также эффективно. Вы можете использовать функцию PHP echo() для вывода кода JavaScript , который будет обрабатывать редирект.
Если воспользуетесь этим решением, то не придется использовать буферизацию вывода. Что также предотвращает возникновение ошибок, связанных с отправкой заголовков.
Ниже приводится несколько примеров, в которых использованы разные методы JavaScript для редиректа с текущей страницы на другую:
self.location='https://example.com/final.php';"; echo ""; echo ""; echo ""; ?>
Единственным недостатком этого метода перенаправления на другой сайт PHP является то, что JavaScript работает на стороне клиента. А у ваших посетителей может быть отключен JavaScript .
Использование метатегов HTML для редиректа
Также можно использовать базовый HTML для выполнения редиректа. Это может показаться непрофессиональным, но это работает. И не нужно беспокоиться о том, что в браузере отключен JavaScript или ранее была отправлена ошибка заголовков:
Также можно использовать последнюю строку из предыдущего примера, чтобы автоматически обновлять страницу каждые « n » секунд. Например, следующий код будет автоматически обновлять страницу каждые 8 секунд:
Заключение
В этой статье я рассмотрел три различных метода перенаправления с index php , а также их преимущества и недостатки. Конкретный метод, который стоит использовать, зависит от задач проекта.
Редирект на другую страницу на php
![]()
Редирект на другую страницу в php осуществляется с помощью функции header.
Простой вызов функции header для редиректа:
Будьте внимательны, функция не будет работать, если перед ней есть любой html-код и не каких пробелов, постарайтесь размещать её в верху страницы. Также проблемы вызова бывают из-за кодировки, работайте в UTF-8.
Вызов header, для редиректа с задержкой 10 секунд.
В операторе if переход на другую страницу
Делайте header(«Location: page.php»); exit; , если я правильно вопрос понял. После Location либо полный адрес ( http://. ), либо страницу, относительно корня сайта.
13 ноя 2011 в 16:15
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Есть такая функция header.
header() используется для отправки необработанных HTTP -шапок. См. в спецификации HTTP/1.1 информацию о HTTP headers .
Отслеживать
371 1 1 золотой знак 5 5 серебряных знаков 13 13 бронзовых знаков
ответ дан 13 ноя 2011 в 16:09
nail_gizatullin nail_gizatullin
104 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака
Правильный совет. Только автор должен помнить, что вызов хедера возможен только ДО вывода на экран любого текста.
13 ноя 2011 в 16:14
Если вызов хедера возможен только ДО вывода на экран любого текста, то почему тогда у меня работает:
text
else header(«Location:google.com»); exit(); ?> >
5 авг 2014 в 21:53
Я обычно использую
header("Location: http://www.example.com/");
Это и правильнее, да и удобно.
Отслеживать
ответ дан 14 ноя 2011 в 6:23
12k 1 1 золотой знак 22 22 серебряных знака 41 41 бронзовый знак
- header(‘Location: _URL_’); exit;
- echo ‘‘; exit;
Второй вариант некошерный, но работает, когда надо перекинуть, не сохраняя страницу в истории. Или когда хидеры уже высланы.
Отслеживать
ответ дан 14 ноя 2011 в 6:32
14.7k 1 1 золотой знак 26 26 серебряных знаков 48 48 бронзовых знаков
По-моему, в общем правильно, но можно и include -ом. А fopen() : можно и так, только геморроя и кода больше будет, ну типа так не делается.
Отслеживать
8,657 18 18 золотых знаков 73 73 серебряных знака 181 181 бронзовый знак
ответ дан 13 ноя 2011 в 15:56
AlexGreekk AlexGreekk
26 2 2 бронзовых знака
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как перейти на другую страницу в php
Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
После окончания скрипта мне нужно, что бы пользователя отправило на другую страницу. Как это сделать?
Отправлено: 11 Октября, 2007 — 16:59:20
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
header(«Location: page.html»);
Отправлено: 11 Октября, 2007 — 17:19:12
Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
valenok пишет:
header(«Location: page.html»);
А как сделать так что бы вывелось сообщение и пользователя перекинуло на другую страницу через 5 секунд?
Отправлено: 11 Октября, 2007 — 18:55:45
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)
Andrey5555 пишет:
А как сделать так что бы вывелось сообщение и пользователя перекинуло на другую страницу через 5 секунд?
Вы будете перенаправлены на другую страницу через 5 секунд.
Отправлено: 11 Октября, 2007 — 20:07:22
Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
Спасибо. Как я понял хтмл код можна встраивать в пхп через echo или print. Обязательно ли писать
‘
Вы будете перенаправлены на другую страницу через 5 секунд.
‘;
Все это для МЕГА тега?
Отправлено: 11 Октября, 2007 — 20:40:05
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва
Помог: 10 раз(а)