Вот есть такой скрипт: Code: <? $c = curl_init(); @curl_setopt($c, CURLOPT_URL, "http://test.ru/page.html"); @curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); @curl_setopt ( $c , CURLOPT_REFERER , "http://refer.ru" ); @curl_setopt ( $c , CURLOPT_VERBOSE , 1 ); @curl_setopt ( $c , CURLOPT_HEADER , 1 ); @curl_setopt ( $c , CURLOPT_USERAGENT , $agent ); @curl_setopt ( $c , CURLOPT_HTTPHEADER , $header ); @curl_setopt ( $c , CURLOPT_FOLLOWLOCATION , 1 ); @curl_setopt ( $c , CURLOPT_SSL_VERIFYPEER, 0 ); @curl_setopt ( $c , CURLOPT_SSL_VERIFYHOST, 0 ); @curl_setopt ( $c , CURLOPT_COOKIEJAR , $cookie_file ); @curl_setopt ( $c , CURLOPT_COOKIEFILE , $cookie_file ); $res = @curl_exec($h); curl_close($с); echo $res; ?> На странице page.html это: Code: <html><head></head> <script>alert(document.referrer);</script> <body></body></html> Но при срабатывании скрипта показывается правильный реферер, а не тот, который передавал (в данном случае refer. ru). Что не так? С курлом работаю совсем недавно, так что мог где-то напортачить. Заранее спасибо!
потому что яваскриптовый document.referrer немного отличается от переменной окружения apache (HTTP_REFERER). Ява-скрипт сам его из браузера достает. Как то так. В твоем случае - это страница, где запущен твой php-скрипт
Переменные $header и $agent передаются пустые. Я сначала хотел в них записать заголовок и агент, но как-то до этого еще не дошло. Т.е. получается что для JavaScript другой (подставной) реферер передать не получится?
Curl не поддерживает js (если русским языком), пиши свой обработчик js. Если ты хочешь какой-то счётчик накрутить или что-то подобное, то просто передай ему нужный реферрер вместо document.referrer