Forum Webscript.Ru

Программирование => PHP => Тема начата: Eugene2001 от 15 Октября 2002, 03:34:22

Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 03:34:22
помогите сохранить значение в HTTP_REFERER
====


при использовании

header (\'location: \'.$url);
или


теряется значение в HTTP_REFERER,
т.е. на той странице куда человек будет передаресован, уже не получается определить откуда он пришел используя

if (strstr(getenv(\'HTTP_REFERER\'),\'сайт.ru\')


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


Евгений
Название: как сохранить HTTP_REFERER ???
Отправлено: rembo от 15 Октября 2002, 04:21:23
Так не пробовал?
header(\'location: $url?referer=$HTTP_REFERER\');
или
>

if (strstr($referer,\'сайт.ru\'))
Название: как сохранить HTTP_REFERER ???
Отправлено: Доктор от 15 Октября 2002, 04:58:19
Или в сессию (или просто в куку, в конце концов) пихать...
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 05:05:41
что-то не работает...

грузится страница с адресом

http://www.сайт.ru/index.php?referer=>

но она уже не помнит тот сайт, с которого редиректнули...
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 05:34:08
не работает и так...


header(\'location: http://www.сайт.ru/index.php?referer=$HTTP_REFERER\');

?>

так грузится страница с адресом http://www.сайт.ru/index.php?referer=$HTTP_REFERER

которая уже "потеряла" $HTTP_REFERER

помогите, пожалуйста, разобраться как это реализовать на header или META
Название: как сохранить HTTP_REFERER ???
Отправлено: rembo от 15 Октября 2002, 07:36:45
Цитировать
которая уже "потеряла" $HTTP_REFERER

Ну дык тогда пропиши ?referer=$HTTP_REFERER на той странице где еще не "потеряла". Или вопрос поставь по другому.
Название: как сохранить HTTP_REFERER ???
Отправлено: GotZfild от 15 Октября 2002, 09:32:46
Цитировать
header(\'location: http://www.сайт.ru/index.php?referer=$HTTP_REFERER\');

Поставь двойные кавычки
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 13:15:02
пробовал разные варианты... пишу что получилось...

если посетитель заходит на 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.
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 13:24:12
ты неправильно понимаешь термин referer
тебе нужен не он, а просто гарантия, что человек пришел с твоей редиректилки - я правильно понял?
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 13:33:40
да, правильно.
именно это мне и нужно,
извините если я своими описаниями ввел кого-то в заблуждение.
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 13:48:23
долбаный форум потерял мое сообщение.
черт бы его подрал.

Евгений.
А зачем тебе вообще это нужно?
способов есть масса.
Например скрипт на сайте 1 может ставтить куку ,а на сайте 2 - ее читать
или просто банально добавлять к ссылке параметр -
?from_site1.
Ты можешь толком расскажить - что ты вообще делаешь, доступ к каким из перечисленных серверов имеешь?

...долбаный форум.
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 14:05:17
я имею доступ к 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\')...
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 14:32:14
через 3 секунды - да, только мета.

Я ж тебе написал, как сделать.
либо через куки, либо параметром.
Название: как сохранить HTTP_REFERER ???
Отправлено: Макс от 15 Октября 2002, 14:40:08
Цитировать
либо через куки

Хмм, вообще-то если Eugene2001 правильно указал вид адресов 2 сайтов (site1.ru и site2.ru), то есть сайты имеют разные домены то куки не подойдут:
Цитировать
Например скрипт на сайте 1 может ставтить куку ,а на сайте 2 - ее читать



PS
AFAIK
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 15:12:58
ой, да. тормознул я конкретно.
Название: как сохранить HTTP_REFERER ???
Отправлено: Eugene2001 от 15 Октября 2002, 15:48:16
значит куки отпадают...

подскажите, как это сделать параметром?

как будет выглядеть ссылка - go.php?from_site1

а что надо вписать в index.php на site2.ru?
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 19:44:23
if ($QUERY_STRING=="from_site1")
Название: как сохранить HTTP_REFERER ???
Отправлено: Maniac от 15 Октября 2002, 20:42:17
Ээээ... Люди... Меня осенило. А как Eugene2001 определяет реферала на втором сайте? Уже не анализом ли $HTTP_REFERER? Если да - то это однозначно клиника.
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 15 Октября 2002, 23:44:46
да не реферала он определяет
а проверяет, откуда пришли - с редиректилки, или напрямую
Название: как сохранить HTTP_REFERER ???
Отправлено: Доктор от 16 Октября 2002, 00:10:53
Цитировать
через 3 секунды - да, только мета.

RomikChef, просто на досуге попробуй все же такой хедер:
header("Refresh:3;url=bla-bla-bla");

и как ты мету такую пишешь?
Название: как сохранить HTTP_REFERER ???
Отправлено: ThE0ReTiC от 16 Октября 2002, 00:49:25
Доктор
Цитировать
Refresh

Покажи, плз, на
http://www.adam.ru/Pki/Rfc/rfc2616.txt
Страницу, где описан этот заголовок.
Название: как сохранить HTTP_REFERER ???
Отправлено: Доктор от 16 Октября 2002, 01:13:28
ThE0ReTiC
К тебе вопрос тоже:
Цитировать
и как ты мету такую пишешь?
Название: как сохранить HTTP_REFERER ???
Отправлено: ThE0ReTiC от 16 Октября 2002, 01:22:46
Через тэг мета.
А вообще стараюсь не пользоваться принудительными редиректами.
Название: как сохранить HTTP_REFERER ???
Отправлено: Макс от 16 Октября 2002, 01:54:51


насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.
Правда в RFC такого я тоже не нашел, может разработчики броузеров сами что-то выдумали

ЗЫ
Цитировать
А вообще стараюсь не пользоваться принудительными редиректами
Хмм.. Почему. ИМХО очень удобно, особенно после POST-запросов
Название: как сохранить HTTP_REFERER ???
Отправлено: Доктор от 16 Октября 2002, 02:15:33
Цитировать

насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.


Макс, ты мне всю малину наломал :)
equiv=сокращенный equivalent
Вообще, заголовок Refresh, действительно, нестандартен, но покажите мне браузер, в котором он не работает...
Кроме того до недавнего времени его просто приходилось использовать в некоторых случаях вместо Location...
Название: как сохранить HTTP_REFERER ???
Отправлено: ThE0ReTiC от 16 Октября 2002, 11:11:59
Доктор
Цитировать
действительно, нестандартен

И это не есть хорошо.
Название: как сохранить HTTP_REFERER ???
Отправлено: Меняздесьдавнонет от 16 Октября 2002, 12:51:32
Доктор, и что?
Ты к чему это все написал?
к чему header приплел?
зачем к нестандартности придрался?

_Я_ меты вообще не пишу.
Ты вообще о чем говоришь? О моем моральном облике? Он насковзь аморальный.

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

Ты вообще к чему вопросы сови задаешь? ЧЧто узнать или кого прищучить хочешь? Открытым текстом напиши.
Название: как сохранить HTTP_REFERER ???
Отправлено: Доктор от 16 Октября 2002, 13:58:33
ThE0ReTiC
Цитировать
И это не есть хорошо.

Дык кто ж спорит... Но работает везде, так что кому как, а я в данном случае плевал на стандартность... Тем более что:
Цитировать
до недавнего времени его просто приходилось использовать в некоторых случаях вместо Location...


RomikChef
Цитировать
зачем к нестандартности придрался?

Я придрался??? Я как раз не придирался...
Про моральный облик тоже не врубился к чему это... видно, с юмором с утра плохо :)
Цитировать
Ты вообще к чему вопросы сови задаешь? ЧЧто узнать или кого прищучить хочешь?

Я вопросы задаю? Это ж вы меня прищучивать начали чего-то...
Цитировать
Да и не ходят по сайтам с редиректилками люди с броузерами, которые не поддерджат мету.

Тут ты так и не понял сути...
Цитировать

насколько я помню, http-equiv - означает эквивалент HTTP-заголовка, то есть подобный HTTP-заголовок тоже должен быть.

Цитировать
equiv=сокращенный equivalent

Мета http-equiv - это "эмуляция" http-заголовка... Так что в будущем вместо можешь смело писать header("Refresh:...");