Почему функция Header(”Location: <путь>”) игнорируется

Станислав548

Новичок
Почему функция Header(”Location: <путь>”) игнорируется

Почему если я открываю через сокет страницу, в коде которой есть функция Header(”Location: <путь>”), то эта функция не срабатывает и страница продолжает загружаться, вместо того, что бы перейти на другую страницу. Перед header нет операторов print() и echo().
 

Фанат

oncle terrible
Команда форума
во-первых, после Header(”Location: надо всегда ставить
exit;
во-вторых, посмотри сообщения об ошибках - и узнаешь, почему
 

Stm

Новичок
насколько я понимаю переход на ресурс указанный в Location хедере осуществляет броузер, а если ты читаешь страницу сам через сокет то и сам заботься об обработке хедеров.
 

Станислав548

Новичок
Автор оригинала: Stm
насколько я понимаю переход на ресурс указанный в Location хедере осуществляет броузер, а если ты читаешь страницу сам через сокет то и сам заботься об обработке хедеров.
Как заботиться об обработке header? Можно с помощью другой функции сделать переход на другую страницу?
 

droopy

Guest
если у тебя был вывод в браузер то хэдеры уже не запустятся
>Можно с помощью другой функции сделать переход на другую страницу?
можно яваскриптом
 

Станислав548

Новичок
С помощью какой функции php можно сделать переход на другую страницу? Функции JavaScript не подойдет.
 

Stm

Новичок
Станислав548
закрываешь сокет этой страницы, и конектишся к той что указана в Location: ...
 

Фанат

oncle terrible
Команда форума
Ответы Фанат и droopy были не в тему. они не поняли, что речь идёт о сокете.

Станислав548, что ты собрался делать яваскриптом? Запрашивать страницу? или делать редирект? и то и другое не имеет, вообще-то, смысла.
поясни - что за страницу ты открываешь? Может, есть решение проще.
 

Станислав548

Новичок
Если пользователь не авторизован на сайте, нужно сделать, что бы его перебрасывало на другую страницу.
Функция header() я думаю не работает из-за того, что сокет автоматически выводит в браузер заголовок, который обычно
программист вырезает перед выводом на экран.
Заместо header я поставил

print "<script>-----код------</script>";
exit;

Пользователь если даже проигнорирует скрипт, но он не получит страницу из-за оператора exit;
 

Фанат

oncle terrible
Команда форума
объясни, ради бога, о каком сокете речь?!
если ресь идёт о пользователе твоего сайта, то ПРИ ЧЁМ ЗДЕСЬ СОКЕТ?
ты можешь толком объяснить?!

"заместо" header ты поставил "<script>" - ЗАЧЕМ? По-твоему, то нечно, которое открывает твою страницу через сокет, не умея обработать СТАНДАРТНЫЙ НТТР заголовок, умеет при этом обрабатывать яваскрипт? Ты не подскажешь - а что это за программа такая?

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

Станислав548

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

Обычно когда загружаешь страницу через сокет и выводишь её в броузер, сверху появляется HTTP заголок после которого идет загружаемая страница. Мы знаем что функция header()
не сработает если уже был вывод в броузер, а когда работаешь через сокет он выводит HTTP заголовок(вывод в броузер произведен) из-за которого функция header("Location:----") не может нормально работать.

Заместо функции header() в броузер, с помощью функции
print() поступает JavaScript код

<script>window.location.href="--путь-- ";</script>

который перебрасывает пользователя на нужную страницу,
а функция exit; запрещает дальнейщую загрузку данной страницы.
 

mike

pmcoder
Я делаю один сайт который можно будет запускать с разных
серверов, через сокет.
Для чего все это делается?
Запускать сайт будет пользователь через другой сайт или
запускать его будет CRON или...
 

Фанат

oncle terrible
Команда форума
Я делаю один сайт который можно будет запускать с разных
серверов, через сокет.
фантастически умное решение.
Обычно когда загружаешь страницу через сокет и выводишь её в броузер, сверху появляется HTTP заголок после которого идет загружаемая страница.
это данность. заголовок "появляется". как джинн из бутылки. и ничего с этим нельзя сделать.
Заместо функции header() в броузер, с помощью функции
print() поступает JavaScript код
<script>window.location.href="--путь-- ";</script>
да, сказки братьев гримм отдыхают.

гениальность как выводов, так и решения - на грани фантастики.
 

mike

pmcoder
С помощью какой функции php можно сделать переход на другую страницу? Функции JavaScript не подойдет.
Эта функция называется - регулярные выражения. Береш
страничку, парсиш ее с помощью вышеупомянутой функции
на предмет твоего хидера, затем вместо того чтобы

я открываю через сокет страницу, в коде которой есть функция Header(”Location: <путь>”),
выполняешь функцию Header(”Location: <путь>”), где путь -
хидер который получил на предыдущем этапе
 
Сверху