Заменить REFERER при редиректе

Discussion in 'PHP' started by Xtezy, 17 Nov 2009.

  1. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Мне нужно сделать редирект, при этом подменить значение реферера.
    Пробовал по всякому:
    PHP:
    <?php
    header
    ('Referer: 111.html');
    header('Location: http://tds.ru/go.php?sid=1');
    ?>
    Редиректит но со старым реферером.


    А вот в этом случае:
    PHP:
    <?php
    $ch 
    curl_init();
    curl_setopt($chCURLOPT_REFERER'111.html' );
    curl_setopt($chCURLOPT_URL"http://tds.ru/go.php?sid=1");
    curl_exec($ch);
    curl_close($ch);
    ?>
    На тдске виден нужный рефер, информация об Юзер Агенте пустая(а это мне совсем не нужно)... И так же не происходит никакого редиректа.

    Подскажите пожалуйста кто знает, очень нужно.
     
  2. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    А этот сайт точно живой? я даже не смог на него зайти чоб своё предположение проверить(=
     
  3. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Да этот домен я для примера написал, чтобы было понятно что там тдска.

    Ты знаешь как сотворить то что мне нужно?
     
  4. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    попробуй вот так
    <script type='text/javascript'>
    sid=1;
    var r=document.referrer;
    window.location="http://"+"сайт"+".ru"+"/go.php?sid="+sid+"&sref="+r;
    </script>
    sid-номер схемы(=
    sref-полный реферер
     
  5. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    и вот тут много чего подезного(;
    http://jacksoft.biz/
     
    #5 DeaD_MoroZ, 17 Nov 2009
    Last edited: 17 Nov 2009
  6. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Это тоже не работает.

    Уже все перепробовал, неужели нельзя...
     
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    PHP:
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
    Советую использовать инонимные HTTP/S прокси, если хочеш накрутить счетчик на ТДС, иначе в бан улетиш.
     
  8. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Ну юзер агента я сделал. А редиректа все равно не происходит. Хотя и в настройках симпл тдс поставил curl редирект уже.
     
  9. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Вообще неясен вопрос, какой редирект ты имееш ввиду, если на стороне сервера к примеру авторизация с редиректом, то задаеш
    PHP:
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    Если там как в Вкантакте Мета тэг в теле, то чтоб перейти по редиректу нужно
    PHP:
    curl_setopt($chCURLOPT_RETURNTRANSFER0);
    Или ты это имееш ввиду:
    PHP:
    header('Location: www'); 
    Опиши вообщем нормально ТЗ
     
  10. CrazyStudentS_Mi}{

    CrazyStudentS_Mi}{ Elder - Старейшина

    Joined:
    4 Jul 2007
    Messages:
    424
    Likes Received:
    296
    Reputations:
    92
    Xtezy, привет :) у тебя какой мод тдски? у меня вроде в 1.3 нуллед by iron-viper рефереры все пашут даже без JS и редиректов хедером, когда просто по ссылке кликают
     
    1 person likes this.
  11. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    Попробую так объяснить что мне нужно

    PHP:
    <?php
    //получаю полный урл данной странички
    $ref 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    //из полного урла удаляю GET запрос
    $new_ref preg_replace('/\?.*?(?=#|\z)/'''$ref);

    //далее мне нужно средиректить на тдску со 
    //значением реферера - $new_ref

    ?>
     
  12. ChieFSS

    ChieFSS Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    35
    Likes Received:
    2
    Reputations:
    0
    А зачем GET запрос вначале подставлять ($_SERVER['REQUEST_URI']), а потом убирать?

    Curl это не редирект. Он тут точно не поможет.
    Реферер у клиентского браузера подменить нельзя, если только сам клиент этого не сделает.

    Сделайте специальную страницу и редеректите с неё:
    http://domain.ru/url.php?go=http://tds.ru
     
    #12 ChieFSS, 17 Nov 2009
    Last edited: 17 Nov 2009
  13. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    средиректить кого? редиректят клиента, зашедшего на сайт, а то что ты описываешь - тупо отправить запрос на сервер. можно через теже сокеты сделать, составив нудный пакет, можно через курл.
    PHP:
    $fh fsock_open("blah.com");
    $packet "GET /blah HTTP /1.1\r\n";
    $packet .= "Host: blah.com\r\n";
    $packet .= "Referer: blahblah.com\r\n\r\n";
    fwrite($fh$packet);
    fclose($fh);
     
  14. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27

    Мне нужно получить полный урл странички без гет данных, а вот это ($_SERVER['HTTP_HOST']) дает только данные хоста, поэтому добавляю путь до странички и затем стираю гет.

    Такой вариант мне не подойдет.
     
  15. ChieFSS

    ChieFSS Elder - Старейшина

    Joined:
    23 Nov 2006
    Messages:
    35
    Likes Received:
    2
    Reputations:
    0
    Есть ещё $_SERVER['PHP_SELF'] :
    PHP:
    echo 'http://' $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
     
  16. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    Я вот почитал тематические сайты, существует только вариант с промежуточной страницой. А курл действительно не надо использовать.
     
  17. imajo.ati

    imajo.ati Banned

    Joined:
    21 Feb 2008
    Messages:
    232
    Likes Received:
    62
    Reputations:
    8
    ошибаешься

    прочитай хотя бы тут http://www.cgisecurity.com/lib/XmlHTTPRequest.shtml
     
  18. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    это и есть решение проблеммы(= (если я не ошибаюсь)
     
  19. ntldr

    ntldr Elder - Старейшина

    Joined:
    4 Dec 2007
    Messages:
    367
    Likes Received:
    140
    Reputations:
    23
    Подменить реферер нельзя, можно его только обнулить
     
    WRedMedia likes this.
  20. Xtezy

    Xtezy Elder - Старейшина

    Joined:
    19 Nov 2008
    Messages:
    154
    Likes Received:
    38
    Reputations:
    27
    пробовал разобраться, нифига не получилось....

    Еще раз попробую пояснить что именно мне нужно:

    пользователь каким либо образом попадает на мой сайт -> я его должен средиректить(любым способом, php, html, javascript или другое) на другой адрес(в моём случае на TDS), и при этом нужно подменить реферера каким-либо образом, чтобы на TDS уже был виден нужный мне реферер.

    ntldr : такое нельзя реализовать???
     
    #20 Xtezy, 20 Nov 2009
    Last edited: 20 Nov 2009