Как перейти на другую страницу в php
Перейти к содержимому

Как перейти на другую страницу в php

  • автор:

Как в 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

Редирект на другую страницу в 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 бронзовый знак

  1. header(‘Location: _URL_’); exit;
  2. 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 секунд
Вы будете перенаправлены на другую страницу через 5 секунд.
Отправлено: 11 Октября, 2007 — 20:07:22

Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007

Помог: 0 раз(а)

Спасибо. Как я понял хтмл код можна встраивать в пхп через echo или print. Обязательно ли писать


Редирект через 5 секунд



Вы будете перенаправлены на другую страницу через 5 секунд.

‘;

Все это для МЕГА тега?

Отправлено: 11 Октября, 2007 — 20:40:05

Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006
Откуда: Москва

Помог: 10 раз(а)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *