javascript определить истинного рефера

Тема в разделе "Другие языки", создана пользователем KillDead, 11 янв 2011.

Модераторы: Цукер
  1. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Задача вроде бы проста- мне нужно узнать с какой страницы моего сайта пришёл пользователь и выполнить js код. Но, дело в том, что если пользователь обновит страницу, или после того, как перейдёт на неё с помощью истории, нажав на кнопку "назад", то реферал стандартными способами буден определён неверно.
    Возможно ли это как то обойти?
     
  2. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
    Если в пределах одного сайта, то записывать в куку текущый location, а потом проверять, сравнивать...
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Пытался через куки сделать- но к сожалению по размеру в куку всё не влазит.
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    а сессии не вариант?
    http://www.softtime.ru/bookphp/gl8_1.php
     
  5. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
    что это за такой урл длиннючий, который в куку не влазит:be:, еще вариант записывать в куку только определенный параметр урла, или в data-attribute, или на крайняк, если не брать в счет старые версии браузеров то можно воспользоваться локальным хранилищем - http://htmlbook.ru/html5/storage
     
  6. Haliff3007

    Haliff3007 Читатель

    Заблокирован
    Регистр.:
    17 мар 2007
    Сообщения:
    481
    Симпатии:
    196
    А ничего, то что браузер спросит записывать данные или нет?
    Врядли кто-то захочет себе в local писать непонятные js cкрипты.
     
  7. Mr.Emm

    Mr.Emm Постоялец

    Регистр.:
    5 май 2008
    Сообщения:
    144
    Симпатии:
    107
    ты это о чем, посты набиваешь?:-] Никто не предлагает писать куда-либо, каие-то непонятные зловредные скрипты, локальное хранилище - это новое поколение кук, для хранения бОльшего объема информации необходимой для внутренней работы веб-приложения, без лишних запросов к серверу. Ссылка на то и предоставлена, для ознакомления;)
     
  8. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    Mr.Emm
    на самом деле не всё так просто с хранилищем
    во первых работает оно по разному на разных системах - незнаю в чём прикол но у меня на работе скрипт работал с хранилищем на Opera а дома нивкакую - хотя браузеры одинаковые. И даже OS ставилась с одного итогоже диска.
    Во вторых IE требует подтвердить согласие на запись - многих пользователей это испугает

    В итоге я отказался от этой идеи и вернулся к cookies сократив до минимума сохраняемые данные

    в куках у разных браузеров можно хранить разное колличество данных но не менее 4кб - мне хватило, url более 4к символов никогда слава богу не видел такчто почему не вмещается в куку непонятно. Скорее всего KillDead туда не только url записывает а ещё кучу всего :)
     
  9. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    может для данных использовать php а дальше выполнять яваскрипт
    PHP:
    <script language="javascript" type="text/javascript">
    var referer = '<?=$_SERVER['HTTP_REFERER'?>';
    alert (referer);
    </script>
    например если в ссылке реферала есть слово javascript то выполнить яваскрипт
    PHP:
    <?
    //надо выполнить код если в ссылке реферала есть javascript
    if(preg_match('#javascript#i'$_SERVER['HTTP_REFERER'])){
        
    $kod 1;
    }else{
        
    $kod 0;
    }
    ?>
    <script language="javascript" type="text/javascript">
    var kod = <?=$kod ?>;
    if(kod==1){
        alert ('есть');
    }
    </script>