Мне нужно сделать редирект, при этом подменить значение реферера. Пробовал по всякому: PHP: <?php header('Referer: 111.html'); header('Location: http://tds.ru/go.php?sid=1'); ?> Редиректит но со старым реферером. А вот в этом случае: PHP: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_REFERER, '111.html' ); curl_setopt($ch, CURLOPT_URL, "http://tds.ru/go.php?sid=1"); curl_exec($ch); curl_close($ch); ?> На тдске виден нужный рефер, информация об Юзер Агенте пустая(а это мне совсем не нужно)... И так же не происходит никакого редиректа. Подскажите пожалуйста кто знает, очень нужно.
Да этот домен я для примера написал, чтобы было понятно что там тдска. Ты знаешь как сотворить то что мне нужно?
попробуй вот так <script type='text/javascript'> sid=1; var r=document.referrer; window.location="http://"+"сайт"+".ru"+"/go.php?sid="+sid+"&sref="+r; </script> sid-номер схемы(= sref-полный реферер
PHP: curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3'); Советую использовать инонимные HTTP/S прокси, если хочеш накрутить счетчик на ТДС, иначе в бан улетиш.
Ну юзер агента я сделал. А редиректа все равно не происходит. Хотя и в настройках симпл тдс поставил curl редирект уже.
Вообще неясен вопрос, какой редирект ты имееш ввиду, если на стороне сервера к примеру авторизация с редиректом, то задаеш PHP: curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); Если там как в Вкантакте Мета тэг в теле, то чтоб перейти по редиректу нужно PHP: curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); Или ты это имееш ввиду: PHP: header('Location: www'); Опиши вообщем нормально ТЗ
Xtezy, привет у тебя какой мод тдски? у меня вроде в 1.3 нуллед by iron-viper рефереры все пашут даже без JS и редиректов хедером, когда просто по ссылке кликают
Попробую так объяснить что мне нужно PHP: <?php //получаю полный урл данной странички $ref = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //из полного урла удаляю GET запрос $new_ref = preg_replace('/\?.*?(?=#|\z)/', '', $ref); //далее мне нужно средиректить на тдску со //значением реферера - $new_ref ?>
А зачем GET запрос вначале подставлять ($_SERVER['REQUEST_URI']), а потом убирать? Curl это не редирект. Он тут точно не поможет. Реферер у клиентского браузера подменить нельзя, если только сам клиент этого не сделает. Сделайте специальную страницу и редеректите с неё: http://domain.ru/url.php?go=http://tds.ru
средиректить кого? редиректят клиента, зашедшего на сайт, а то что ты описываешь - тупо отправить запрос на сервер. можно через теже сокеты сделать, составив нудный пакет, можно через курл. 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);
Мне нужно получить полный урл странички без гет данных, а вот это ($_SERVER['HTTP_HOST']) дает только данные хоста, поэтому добавляю путь до странички и затем стираю гет. Такой вариант мне не подойдет.
Я вот почитал тематические сайты, существует только вариант с промежуточной страницой. А курл действительно не надо использовать.
пробовал разобраться, нифига не получилось.... Еще раз попробую пояснить что именно мне нужно: пользователь каким либо образом попадает на мой сайт -> я его должен средиректить(любым способом, php, html, javascript или другое) на другой адрес(в моём случае на TDS), и при этом нужно подменить реферера каким-либо образом, чтобы на TDS уже был виден нужный мне реферер. ntldr : такое нельзя реализовать???