Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сохранение referer в cookie - вопрос знающим
Форумы портала PHP.SU » » Вопросы новичков » Сохранение referer в cookie - вопрос знающим

Страниц (1): [1]
 

1. wondermind - 30 Сентября, 2011 - 16:39:08 - перейти к сообщению
Здравствуйте.

Стоит задача: сохранить реферер в куки. Использую это код:


CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. if( isset( $_SERVER['HTTP_REFERER']) && (!$_COOKIE['last_ref'])) {
  3.    SetCookie( 'last_ref', $_SERVER['HTTP_REFERER']);
  4. }
  5.  
  6. ?>



Если за время жизни сессии приходить на целевую страницу из разных источников, то в куки сохраняется - самый первый источник и не перезаписывается каждый раз (что и нужно).

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

Что не так в коде?

Большое спасибо
2. netoro - 01 Октября, 2011 - 20:20:07 - перейти к сообщению
wondermind пишет:
Здравствуйте.

Стоит задача: сохранить реферер в куки. Использую это код:


CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. if( isset( $_SERVER['HTTP_REFERER']) && (!$_COOKIE['last_ref'])) {
  3.    SetCookie( 'last_ref', $_SERVER['HTTP_REFERER']);
  4. }
  5.  
  6. ?>



Если за время жизни сессии приходить на целевую страницу из разных источников, то в куки сохраняется - самый первый источник и не перезаписывается каждый раз (что и нужно).

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

Что не так в коде?

Большое спасибо


Мой мозг взорвался. Радость

Я хочу уточнить.

Твой сайт www[dot]sajt[dot]ru

на сайте www[dot]bliny[dot]ru кто то кликнул на ссылку на твой сайт и попал на него.
человек пришедший с сайта www[dot]bliny[dot]ru имеет Http_referer www[dot]bliny[dot]ru

Ты хочешь что бы человек этот ходил по твоему сайту и в куках у него было постоянно http_referer www.bliny.ru?
Если так то:
Логика такова ели есть кука с именем 'user_referer' - то ничего не присваивать.
Если ее нет то присвоить ему referer.
Получится два вида кук те кто уже сразу зашел на сайт через URL и те кто кликнул по ссылке где то.

Если очень надо что бы только чужих записать то надо делать проверку что бы существовал referer не твоего домена www[dot]sajt[dot]ru
3. LIME - 02 Октября, 2011 - 01:45:28 - перейти к сообщению
сделайте так
прояснится
PHP:
скопировать код в буфер обмена
  1. <?
  2. echo $_COOKIE['last_ref'].'<br/'>;
  3. echo  $_SERVER['HTTP_REFERER'];
  4. if( isset( $_SERVER['HTTP_REFERER']) && (!$_COOKIE['last_ref'])) {
  5.    SetCookie( 'last_ref', $_SERVER['HTTP_REFERER']);
  6. }
  7.  ?>

 

Powered by ExBB FM 1.0 RC1