Forum Webscript.Ru
Программирование => PHP => Тема начата: Eugene2001 от 15 Октября 2002, 03:34:22
-
помогите сохранить значение в HTTP_REFERER
====
при использовании
header (\'location: \'.$url);
или
теряется значение в HTTP_REFERER,
т.е. на той странице куда человек будет передаресован, уже не получается определить откуда он пришел используя
if (strstr(getenv(\'HTTP_REFERER\'),\'сайт.ru\')
помоги, пожалуйста, как этого можно избежать... т.е. чтобы все-таки можно было определить откуда все-таки редиректнули посетителя
Евгений
-
Так не пробовал?
header(\'location: $url?referer=$HTTP_REFERER\');
или
>
if (strstr($referer,\'сайт.ru\'))
-
Или в сессию (или просто в куку, в конце концов) пихать...
-
что-то не работает...
грузится страница с адресом
http://www.сайт.ru/index.php?referer=>
но она уже не помнит тот сайт, с которого редиректнули...
-
не работает и так...
header(\'location: http://www.сайт.ru/index.php?referer=$HTTP_REFERER\');
?>
так грузится страница с адресом http://www.сайт.ru/index.php?referer=$HTTP_REFERER
которая уже "потеряла" $HTTP_REFERER
помогите, пожалуйста, разобраться как это реализовать на header или META
-
которая уже "потеряла" $HTTP_REFERER
Ну дык тогда пропиши ?referer=$HTTP_REFERER на той странице где еще не "потеряла". Или вопрос поставь по другому.
-
header(\'location: http://www.сайт.ru/index.php?referer=$HTTP_REFERER\');
Поставь двойные кавычки
-
пробовал разные варианты... пишу что получилось...
если посетитель заходит на site1.ru/go.php и оттуда его редиректят на site2.ru/index.php, то на site2.ru/index.php НЕ ОПРЕДЕЛЯЕТСЯ, что посетитель зашел с site1.ru
=========
если посетитель заходит на site1.ru/index.php, а там САМ жмет на ссылку, которая его переводит на site1.ru/go.php - то тогда после редиректа на site2.ru/index.php - он определяется как зашедший с site1.ru (!) - то что и нужно! но это получается только при нажатии самим пользователем на ссылку на сайте site1.ru!
=========
можно как-нибудь сделать так, чтобы refer сохранялся даже если посетитель попадает с site3.ru СРАЗУ на site1.ru/go.php, откуда его автоматически редиректят на site2.ru/index.php.
-
ты неправильно понимаешь термин referer
тебе нужен не он, а просто гарантия, что человек пришел с твоей редиректилки - я правильно понял?
-
да, правильно.
именно это мне и нужно,
извините если я своими описаниями ввел кого-то в заблуждение.
-
долбаный форум потерял мое сообщение.
черт бы его подрал.
Евгений.
А зачем тебе вообще это нужно?
способов есть масса.
Например скрипт на сайте 1 может ставтить куку ,а на сайте 2 - ее читать
или просто банально добавлять к ссылке параметр -
?from_site1.
Ты можешь толком расскажить - что ты вообще делаешь, доступ к каким из перечисленных серверов имеешь?
...долбаный форум.
-
я имею доступ к site1.ru и site2.ru
и хотелось бы чтобы посетитель по какой-нибудь ссылке с чужого сайта заходил на site.ru/go.php, там ему представала бы страница:
сайт грузится...
подождите несколько секунд...
и через 3 секунды его бы перекидывало (это можно только через META?) на site2.ru/index.php
а на странице index.php определяется точно ли посетитель зашел с site1.ru (если оттуда, то ему выдается одна информация, если зашел сразу на index.php или с другого сайта, то ему выдается другая инфо)
страница index.php работает нормально (все нормально определяет)
но если я использую редирект на go.php - то Index.php с site2.ru уже не определяет, что человек зашел с site1.ru
подскажите что надо написать в site1.php/go.php (чтобы была 3-х секундная задержка редиректа, во время которой посетитель мог бы прочитать какую-нибудь инфу) и в site2.ru/index.php
сейчас текст в index.php начинается так:
if (strstr($referer,\'site1.ru\')...
-
через 3 секунды - да, только мета.
Я ж тебе написал, как сделать.
либо через куки, либо параметром.
-
либо через куки
Хмм, вообще-то если Eugene2001 правильно указал вид адресов 2 сайтов (site1.ru и site2.ru), то есть сайты имеют разные домены то куки не подойдут:Например скрипт на сайте 1 может ставтить куку ,а на сайте 2 - ее читать
PS
AFAIK
-
ой, да. тормознул я конкретно.
-
значит куки отпадают...
подскажите, как это сделать параметром?
как будет выглядеть ссылка - go.php?from_site1
а что надо вписать в index.php на site2.ru?
-
if ($QUERY_STRING=="from_site1")
-
Ээээ... Люди... Меня осенило. А как Eugene2001 определяет реферала на втором сайте? Уже не анализом ли $HTTP_REFERER? Если да - то это однозначно клиника.
-
да не реферала он определяет
а проверяет, откуда пришли - с редиректилки, или напрямую
-
через 3 секунды - да, только мета.
RomikChef, просто на досуге попробуй все же такой хедер:
header("Refresh:3;url=bla-bla-bla");
и как ты мету такую пишешь?
-
Доктор
Refresh
Покажи, плз, на
http://www.adam.ru/Pki/Rfc/rfc2616.txt
Страницу, где описан этот заголовок.
-
ThE0ReTiC
К тебе вопрос тоже:
и как ты мету такую пишешь?
-
Через тэг мета.
А вообще стараюсь не пользоваться принудительными редиректами.
-
насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.
Правда в RFC такого я тоже не нашел, может разработчики броузеров сами что-то выдумали
ЗЫА вообще стараюсь не пользоваться принудительными редиректами
Хмм.. Почему. ИМХО очень удобно, особенно после POST-запросов
-
насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.
Макс, ты мне всю малину наломал :)
equiv=сокращенный equivalent
Вообще, заголовок Refresh, действительно, нестандартен, но покажите мне браузер, в котором он не работает...
Кроме того до недавнего времени его просто приходилось использовать в некоторых случаях вместо Location...
-
Доктор
действительно, нестандартен
И это не есть хорошо.
-
Доктор, и что?
Ты к чему это все написал?
к чему header приплел?
зачем к нестандартности придрался?
_Я_ меты вообще не пишу.
Ты вообще о чем говоришь? О моем моральном облике? Он насковзь аморальный.
О вопросе, который задан? Если у этого типа пара дрочеров из тыщи попадут не туда, так это ему по барабану. Да и не ходят по сайтам с редиректилками люди с броузерами, которые не поддерджат мету.
Ты вообще к чему вопросы сови задаешь? ЧЧто узнать или кого прищучить хочешь? Открытым текстом напиши.
-
ThE0ReTiC
И это не есть хорошо.
Дык кто ж спорит... Но работает везде, так что кому как, а я в данном случае плевал на стандартность... Тем более что:
до недавнего времени его просто приходилось использовать в некоторых случаях вместо Location...
RomikChef
зачем к нестандартности придрался?
Я придрался??? Я как раз не придирался...
Про моральный облик тоже не врубился к чему это... видно, с юмором с утра плохо :)
Ты вообще к чему вопросы сови задаешь? ЧЧто узнать или кого прищучить хочешь?
Я вопросы задаю? Это ж вы меня прищучивать начали чего-то...
Да и не ходят по сайтам с редиректилками люди с броузерами, которые не поддерджат мету.
Тут ты так и не понял сути...
насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.
equiv=сокращенный equivalent
Мета http-equiv - это "эмуляция" http-заголовка... Так что в будущем вместо можешь смело писать header("Refresh:...");