JS Referer
От: alexandern  
Дата: 25.03.02 12:55
Оценка:
В JS я использую следующий код для перехода на другую страницу window.parent.location.href="http://xxx/base.phtml".
а на странице base.phtml проверяю $HTTP_REFERER
и почему-то он пуст, как-бы директ линк без referer'а хотя если перехожу по обычной ссылке referer ловится без проблем. Как быть? Может надо что-то в JS добавить, чтобы referer добавлялся.

Заранее большое спасибо.
Re: JS Referer
От: lozzy  
Дата: 25.03.02 13:11
Оценка:
Можно cookie попробовать выставлять, если так не работает Ж. Хотя странно, должно работать ведь...
Re[2]: JS Referer
От: alexandern  
Дата: 25.03.02 13:24
Оценка:
Здравствуйте lozzy, Вы писали:

L>Можно cookie попробовать выставлять, если так не работает Ж. Хотя странно, должно работать ведь...


Я вот тоже думал, что должно и долго не мог понять в чем дело.
Я делаю поддержку скинов, т.е. выбрал другой скин, php-скрипт выхватил Referer изменил скин и вернулся на Referer страничку.
А с куками другой прикол.
Если я из PHP устанавливаю куку, а затем в JS пытаюсь сделать document.Cookie='name=value' то все работает только для корневой директории, для субдиректорий куки не передаются на сервер. А в JS работют нормально. (Куки я ставлю для всего сайта, не для какой либо директории).
Re[3]: JS Referer
От: lozzy  
Дата: 25.03.02 13:50
Оценка:
Подстава, конечно.
Тогда более медленный способ:
echo "<a href='/changeskin.phtml?skin=1&ref=". $SCRIPT_FILENAME ."&blablabla=tututu&...'>Skin 1</a>";


На счет $SCRIPT_FILENAME я не уверен, погляди в хелпе. Это надо будет генерить на каждой странице, где надо менять скин.
По-моему так. В changeskin.phtml поменяешь скин у юзера и айда его
$refer = "Location: ".$ref;
Header($refer);
Re[4]: JS Referer
От: Аноним  
Дата: 25.03.02 14:22
Оценка:
Здравствуйте lozzy, Вы писали:

L>Подстава, конечно.

L>Тогда более медленный способ:
L>[code]

Так, наверное и буду делать, это то не проблема. Хотелось так что бы красиво было, минимум длинных ссылок. Все равно спасибо.
Re[5]: JS Referer
От: lozzy  
Дата: 25.03.02 14:35
Оценка: 3 (1)
А>Так, наверное и буду делать, это то не проблема. Хотелось так что бы красиво было, минимум длинных ссылок. Все равно спасибо.

Кстате, HTTP_REFERER не все броузеры посылают — это раз.

А во-вторых можно и без длинных ссылок: на ссылки change skin вызываем джава скрипт, который открывает окно, в котором берется текущий URL из парентовского окна, получаем из него тот же relative path PHP страницы и составляем href-ы. Юзер жмякает на линку — мы окошко закрываем и parent.document.location.href = "сгенереный_линк_из_чилдового_окна_вместе_с_relative_return_path".

Так. вот еще чего вспомнил — попробуй window.parent.location = tralala (без location.href, просто location). По моему так должно сработать.

Ну, и в третьих, уж не пинай, если помогло — жмякни на цифирку какую-нибудь в хедере моего ответа
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.