<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

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

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Реализация редиректа на PHP

Реализация редиректа на PHP

Редирект - это перенаправление пользователя с одной страницы на другую. Мы с Вами когда-то реализовывали редирект на JavaScript, и настал момент, чтобы реализовать его на PHP, чем мы и займёмся в этой короткой статье.

Реализация редиректа на PHP такая:

<?php
  header("Location: http://myrusakov.ru");
?>

Как видите, ничего сложного нет. Единственное, что мы использовали - это функцию header(). Вообще говоря, функция header() создана не для реализации редиректа, а для отправления различных заголовков. В данном случае, мы отправили заголовок "Location: http://myrusakov.ru", который будет при вызове скрипта делать редирект на http://myrusakov.ru. В будущих статьях мы познакомимся с другими заголовками, которые отправляются через функцию header().

Вот и всё, что касается создания редиректа на PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (25):

brussens brussens 12.10.2011 19:24:43

А что делать, если выдаёт ошибку Warning: Cannot modify header information - headers already sent by (output started at L:\home\test1.ru\www\index.php:4) in L:\home\test1.ru\www\index.php on line 5 Может в денвере проблема?

Ответить

Admin Admin 12.10.2011 19:30:08

Такая ошибка возникает, когда Вы выводите что-то в выходной поток (например, с помощью echo), а потом делаете header().

Ответить

white-hot white-hot 18.12.2014 17:09:39

Михаил,что значит "Вы выводите что-то в выходной поток"?

Ответить

kostya_nad kostya_nad 14.08.2017 14:56:37

Выходной поток - то, что выводится в вид, например через echo или print_r

Ответить

filimon9090 filimon9090 30.04.2012 11:21:05

Здравствуйте Михаил, у меня кроме данного кода ни чего не написано а все равно выдает ошибку: Warning: Cannot modify header information - headers already sent by (output started at S:\home\MySayte\www\Practica\test.php:1) in S:\home\MySayte\www\Practica\test.php on line 2 В чем причина?

Ответить

Admin Admin 30.04.2012 11:23:38

Если действительно ничего не написано, то проверьте кодировку. Она должна быть UTF-8 без BOM.

Ответить

filimon9090 filimon9090 30.04.2012 11:32:50

Да действительно проблема была в кодировки, я так понял php писать лучше в этой кодировки?

Ответить

Admin Admin 30.04.2012 11:35:00

Либо в этой, либо в ANSI.

Ответить

kumakbtu kumakbtu 04.05.2013 15:20:48

Как писать обратный redirect? Как в любом сайте авторизоваться можно с любого странице сайта. А форма авторизация у меня одинаково на всех страницах, то есть запрос идет на один php файл. И как сделать так чтобы после отправке запросе и обработке этого запроса в php файле, вернуться обратно той странице в котором мы авторизовались?

Ответить

Admin Admin 04.05.2013 21:20:40

$_SERVER["HTTP_REFERER"] - вот сюда делать редирект.

Ответить

andrew11 andrew11 17.05.2013 20:52:39

Здравствуйте Михаил, я сделал редирект как у вас здесь описано, ( header("Location: <url>"); ) и он работает, вот только скрипт оповещающей об успешной обработки информации не работает, как это исправить?

Ответить

Admin Admin 17.05.2013 21:19:51

Что за скрипт? И что за успешная обработка информации? Напишите вопрос яснее.

Ответить

andrew11 andrew11 18.05.2013 16:43:24

Вот такой скрипт: result = < mysql-запрос >; if ($result == true) mess('данные добавлены!'); else mess('Ошибка MySQL запроса!'); header("Location: < url >"); function mess($txt) { if ($txt != null) echo "<script> alert('" .$txt. "')</script>"; } Идея такая: при выполнении mysql-запроса выводится сообщение (через alert), оповещающее об его успешности, а после него делается редирект на ту-же страницу откуда и были отправлены данные. Но вот в чем проблема: когда я пишу header сообщение об успешности, почему-то не выводится, а когда я не пишу header, то сообщение выводится. Вот я задаю вопрос, как сделать так, чтобы одновременно был и редирект, и это сообщение ?

Ответить

Admin Admin 18.05.2013 18:15:09

В этом случае надо делать редирект на JS, сразу после вызова alert().

Ответить

andrew11 andrew11 19.05.2013 09:53:39

Спасибо

Ответить

andrew11 andrew11 28.05.2013 23:29:11

Здравствуйте Михаил, еще одна проблема, как можно объединить вывод и редирект, то есть: Есть скрипт ему отправляются данные методом post, он их обрабатывает, если обработка прошла успешно, то в переменную $mess записывается результат обработки, сразу после этого делается редирект, затем делается условие, которая вызывает функцию, возвращающая значение переменной $mess, если в $mess есть текст, то он выводится. Но вот проблема в результате всего этого делается только редирект, без вывода текста. Вопрос, как это можно исправить? Если нужен фрагмент этого скрипта, то я могу прислать, заранее спасибо.

Ответить

Admin Admin 29.05.2013 04:14:50

Надо сохранить данные перед редиректом в сессию.

Ответить

WITCHER WITCHER 22.07.2013 11:17:53

Здраствуйте! Я в php новичок и не до конца понимаю принцип его работы. я хотел спросить значит следующая запись site.com/index.php?act=35345. Как с ним работать. Вообще что это? Вообще я понимаю что это спецальных ссылки для генерации страницы но как с ним работать в php?

Ответить

Admin Admin 22.07.2013 19:26:58

Это передача переменной методом GET. Да, с помощью таких ссылок можно выдать нужную страницу пользователю.

Ответить

operat0p operat0p 22.10.2013 18:57:51

Скажите,пожалуйста, а как реализовать редирект, который мог бы перенаправлять на разные сайты, страницы?хотя бы на 2 разные страницы с каждым переходом отправлял по разному, или чередовал бы эти ссылки с каждым переходом

Ответить

Admin Admin 22.10.2013 21:56:09

Через mt_rand() получить случайное число и в зависимости от значения (проверять через if или switch case), делать редирект на соответствующую страницу.

Ответить

UnkLegacy UnkLegacy 01.12.2014 16:08:11

А как реализовать редирект, чтобы ссылка вида "site1.com/pages" перенаправлялась на "site2.com/pages" Т.е чтобы все ссылки "site1.com/*" перенаправлялись на "site2.com/*"

Ответить

kostya_nad kostya_nad 14.08.2017 14:53:42

.htaccess и mod_rewrite в помощь

Ответить

kostya_nad kostya_nad 14.08.2017 14:53:18

Единственное, что в этом случае нужно поотключать любой возможный показ контента, в т. ч. сообщений об ошибках, ибо показ ошибок и варнингов - тоже выходной поток.

Ответить

mersedesvito112d mersedesvito112d 27.08.2017 20:56:51

Здравствуйте.Подскажите пожалуйста есть ли решение проблемки?после добавления данных через форму выполняю редирект на эту же страницу,но страница перезагружается и моя форма с результатом добавления остается далеко внизу,необходимо опуститься вниз что бы увидеть результат.Есть ли решение при котором страница перезагружалась на нужное место,там где находится форма а не в самый верх.?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.