Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Правильная передача реферера (https://javascript.ru/forum/misc/14358-pravilnaya-peredacha-referera.html)

login18 12.01.2011 17:38

Правильная передача реферера
 
Здравствуйте, появилась проблемка, наверно очень распространенная, но почитав по этому вопросу информацию я так и не понял, как правильно это реализовать.

Подгружаю код на странице и получаю реферера через:
var ref = escape(document.referrer);


Чаще всего это поисковые запросы и строчки выглядят так:
Код:

http://yandex.ua/yandsearch?p=0&text=%D0%BE%
Все счетчики посещаемости и прочие сервисы использую именно escape(document.referrer). В моем примере строчка передается в php скрипт по такому типу:
document.write('<scr'+'ipt type="text/jav'+'ascript" src="http://mysite.com/script.php?param1=text1&param2=text2&ref='+ref+'"></scr'+'ipt>');

В итоге я получаю в строке ref= этот целый запрос:
Код:

http://mysite.com/script.php?param1=text1&param2=text2&ref=http://yandex.ua/yandsearch?p=0&text=%D0%BE%
Соответственно, я получаю реферера до первого &. То есть GET запрос в скрипте уже видит только
Код:

http://yandex.ua/yandsearch?p=0
Вопрос, как правильно передать реферер и если escape тут не подходит, то как счетчики посещаемости получают этот параметр. Заранее спасибо

login18 12.01.2011 20:18

Нашел решение, но сомневаюсь, что оно универсальное:

В GET строке script.php нужно закодировать переменную:
$ref = urlencode ($_GET ['ref']) ;

А потом уже декодировать, где нужно ее использовать:
$ref = urldecode ($ref) ;

monolithed 13.01.2011 22:19

login18,
if(isset($_SERVER['HTTP_REFERER'])) //...

x-yuri 14.01.2011 04:38

encodeURIComponent

login18 16.01.2011 03:17

Спасибо за ответы )

autozmc 01.01.2012 16:43

Здравствуйте, помогите справиться с проблемой.
Есть страница, к примеру mysite1.com на ней находятся фреймы вида:
<iframe src="http://tvoysiteN.com" width="1" height="1"></iframe>
Если обращаться к странице mysite1.com через браузер, то реферер страницы tvoysiteN.com будет передаваться как переход с mysite1.com, а нужно например как mysite2.com.
Другими словами, фрейм передает реферера той страницы на которой расположен, а нужно его заменить другим.
Возможно ли это сделать?

B@rmaley.e><e 01.01.2012 16:58

Цитата:

Сообщение от autozmc
Другими словами, фрейм передает реферера той страницы на которой расположен, а нужно его заменить другим.
Возможно ли это сделать?

Нет.


Часовой пояс GMT +3, время: 13:15.