[php] header("Location:") не передает http_referer

feliks28

Столкнулся с проблемой:
Нужно чтобы на нескольких страницах, если пользователь не авторизован, то его автоматически бы перекидовало на страницу авторизации, а после авторизации автоматически возвращало на эту же страницу.
Но, как оказалось, header не передает $_SERVER["HTTP_REFERER"].
Можно ли как-либо устроить в php авторедирект на нужную страницу с передачей реферера?

evgen5555

А на каком этапе инфа теряется? На забросе в логинку или после аутентификации?

feliks28

на забросе:
1.php

<?php
header("Location:2.php");
?>

2.php

<?php
echo("\"" . $_SERVER["HTTP_REFERER"] . "\"");
?>

Выдает ""

evgen5555

Я так понял, Referer передается только в том случае, когда юзер сам выбирает, перейти ему или нет на страницу. Лучше всего заюзать еще параметр в POST.

feliks28

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

Fragaria

а
 
<?php
header("Location:2.php?return_url=1.php");
?>
не прокатит?
ЗЫ я не пробовал, поэтому спрашиваю

feliks28

Кстати да. Как вариант.
Спасибо!

stm7884696

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

yakoalek

Вообще говоря, странно...
У меня на работе таким образом делается 2 редиректа в секунаду, и в большей части случаев (процентов 70) http-referer передается.
Видимо, это зависит исключительно от браузера. rfc не предполагает обязательной передачи реферера.
А ты на каком браузере тестил?

feliks28

Кстати да. Это ж редирект через пользователя получается... А чисто серверного редиректа из соображений безопасности наверное нет?
Тестил под MYIE2.

yakoalek

"Чисто серверный редирект" - это, можно сказать, прокси-сервер.

vlfdimir58

согласен с алексусом.
передавай с хедером реферер.

stm7884696

ты бы еще под осла 3.0 потестил..
Давай вот не будем писать и тестить под всякое говно...
Иди на спайлог, смотри статистику браузеров, бери первые три и под них все точи...
Но эо уже после того. как напишешь все по спецификации...
А "СвойИЕ" .... нах....

Fragaria

Алексус, как в воду пёрнул, чесслово.
MyIE - это можно сказать скин на обычный ИЕ. Оболочка, понимаешь? Движок он использует стандартный Эксплореровский, так что тестить в MyIE == тестить в IE.

stm7884696

да ну нах...
А фигли тогда он ресурсов жрет в 4 раза меньше, да еще и грузит не ословые дллки ?
пиздец вот развелось умников...

okunek

Из MyIE2 хелпа:
MyIE2 is a browser based on IE core (need IE5.0, IE5.5 or IE 6.0)

stm7884696

В хард&совт выяснили уже...

okunek

это больше похоже на "забили выяснять"

stm7884696

да похер...
тема этого треда уже тоже потерялась...

yakoalek

А я не согласен.
Я почему-то уверен, что таким образом реферер передаваться не будет. Какая разница, какой будет ответ сервера? При получении хедера 'Location: ' браузер просто получает урл, который надо загрузить, больше ничего. Реферер он подставляет (или не подставляет) исключительно по собственному желанию.

feliks28

Давай не будем то что не используешь говном называть, ага?
Оставить комментарий
Имя или ник:
Комментарий: