// codeart.ru / Вопрос/Ответ / Как на php сделать редирект Форум

Как на php сделать редирект rss подписка

Автор: Evgeniy Sergeev

В веб-программировании часто возникает ситуация при которой нужно сделать пересылку посетителя с одной страницы сайта на другую. Например, посетитель зашел на страницу авторизации, но он уже авторизован и его нужно перенаправить на основную страницу сайта — это и есть редирект. Далее я расскажу как сделать редирект на PHP.

[social_lock]

Технически сделать редирект очень просто в первом файле нужно задать HTTP заголовок «Location» и указать URL куда перенаправить посетителя. Вот как это выглядит:


<?php
header('Location: http://localhost/file2.php ');
?>

<?php
Вы совершили редирект на второй файл.
?>

Бывает ситуация, что при выполнении редиректа выдается следующая ошибка «Ошибка PHP — Cannot modify header information — headers already sent by (Невозможно изменить информацию в заголовке — заголовки уже были отправлены)«. Что это значит?

Все дело в том, что редирект можно выполнить только в том случае, если еще никаких данных не было отправлено посетителю, например, вот такой код работать не будет:



<html>
  <head>
  </head>
  <body>
<?php
header('Location: http://localhost/file2.php ');
?>

Все дело в том, что здесь уже частично сформирован HTML документ и в такой ситуации посетителю уже отправлено часть данных. Поэтому нужно твердо помнить, что инструкцию «Location» нужно помещать в самом начале файл до вывода какого-либо другого текста.

При использовании редиректа нужно избегать ситуации когда создаются цеклические редиректы, когда file1.php делает пересылку на file2.php, а тот возвращает посетителя на file1.php. Многие браузеры отслеживают количество переходов по редиректу и не дадут посетителю крутиться в бесконечном цикле. Но работоспособность сайта будет потеряна.

[/social_lock]

Leave a Reply

« »