Теряется рефер

Тема в разделе "PHP", создана пользователем obnon, 16 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. obnon

    obnon

    Регистр.:
    1 июн 2008
    Сообщения:
    245
    Симпатии:
    40
    Для редиректа на партнерку со своей страницы использую такой вот код -


    <?php
    $url = array();
    $url[1] = 'http://линк-номер-один';
    $url[2] = 'http://линк-номер-два';
    $url[3] = 'http://линк-номер-три';
    $rand = rand(1,3);
    header("Location: $url[$rand]");
    ?>

    Проблема в том что в статистике партнерки не видно рефера, либо он пустой, либо рефер - букмаркс. Можно как то вылечить это? Мож другой какой-то код можно использовать? Рандомно чтоб редиректило на любую из трех и чтоб рефер при этом НЕ терялся.
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Некоторые фаерволы (и другие программы) вырезают реферер.
    Может у тебя в этом дело?
     
  3. localhost:80

    localhost:80 Постоялец

    Регистр.:
    4 дек 2008
    Сообщения:
    102
    Симпатии:
    15
    А зачем так переадресовывать уже после того как ссылка нажата %) . Рандом адреса надо делать до вывода предшествующей страницы где эта ссылка собственно и размещается и кликается уже нужная.
     
  4. polyetilen

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

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Проблема решается с urlencode
    PHP:
    header("Location: ".urlencode($url[$rand]));  
    https://www.nulled.cc/showthread.php?t=80093
     
  5. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    urlencode не имеет никакого отношения к рефереру.
     
  6. Sergeknsk

    Sergeknsk Постоялец

    Регистр.:
    17 окт 2007
    Сообщения:
    50
    Симпатии:
    9
    Тут дело не в рандоме, у тебя и без рандома всё останется так же.
    По идее, рефер должен быть и никак иначе.
    Попробуй принудиловку:
    PHP:
    header("Referrer: адрес_сайта_реферера\r\n");
    вставить перед твоим хедером "локейшн".


    p.s. Есть глюк в Internet Explorer`е - он не передает referrer-а при открытии страниц в новом окне или вкладке...
     
  7. obnon

    obnon

    Регистр.:
    1 июн 2008
    Сообщения:
    245
    Симпатии:
    40
    2PHP_Master Там очень много переходов без реферов, скорее всего не в этом дело. Стата -

    http://img99.imageshack.us/img99/3751/statjv8.jpg
    Должны быть, а их почему-то нету.

    2localhost:80 Да мне без разницы как, лишь бы работало - рандомный переход на любой из трех линков и чтоб рефер при этом был.

    Это прямо в php файл можно втавлять? Или только для html?
     
  8. Sergeknsk

    Sergeknsk Постоялец

    Регистр.:
    17 окт 2007
    Сообщения:
    50
    Симпатии:
    9
    это только для пхп
     
  9. localhost:80

    localhost:80 Постоялец

    Регистр.:
    4 дек 2008
    Сообщения:
    102
    Симпатии:
    15
    Еще раз, через переадресацию типа header() реферрер будет теряться, значит определяться какую из 3 ссылок выводить на страницу надо до ее вывода. Все баннерокрутилки работают по такому принципу.
     
  10. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    попробуй так:

    <?php
    ob_start();
    $url = array();
    $url[1] = 'http://линк-номер-один';
    $url[2] = 'http://линк-номер-два';
    $url[3] = 'http://линк-номер-три';
    $rand = rand(1,3);
    header("Location: $url[$rand]");
    header('Referer: '.$_SERVER['HTTP_REFERER']);
    ob_end_flush();
    exit;
    ?>
     
Статус темы:
Закрыта.