подскажите почему не передается referer вот кусок кода Code: <? set_time_limit(0); ob_implicit_flush(); $refs=explode("\n",trim($aref)); $uref=trim($host); $gurl=trim($refs); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $gurl); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_NOBODY,0); curl_setopt($ch,CURLOPT_TIMEOUT,6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $uref); curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $file_content=curl_exec ($ch); curl_close ($ch); ?> переменные передаются скрипту через формы методом POST, ошибок не выдает, но в TOP REFERERS не приходит. подскажите в чем проблема
не помогает пробовал . что-то куда-то типа отсылает, но в ресурсе не видно, хотя через minibrowser все отсылается, значит сайт принимает подобные данные... (для тренировки пользую _http://slotvent.com/guestbook/ в нем длинный TOP и можно отслеживать поступление данных ),и если бы CURL был отключен на хосте - я полагаю выдавалась бы ошибка... вот скрипт Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"> <META content="text/html; charset=windows-1251" http-equiv=Content-Type> </head> <body> <? if (empty($aref)) { $aref=""; } if (empty($prox)) { $prox=""; } if (empty($aref)||empty($_POST['host'])) { echo "<CENTER> <h1>URL</h1> <form action='index.php' method='post' name='logg'> <table> <tr> <br> <input type='text' name='host' size=60><br><br> <td valign='top'><strong>Ссылки </strong> <textarea cols=150 rows=10 name=aref>$aref</textarea> </td> </tr> <tr> <td ><input type='submit' name='qqqqq' value='отправить'></td> </tr> </table> </form> </CENTER> "; exit; } ?> <? set_time_limit(0); ob_implicit_flush(); $refs=explode("\n",trim($aref)); $ZZI=0; WHILE ( (count($refs)>$ZZI) && ($ZZI<50) ) { echo trim($refs[$ZZI])." ok <br>"; ob_flush(); $uref=trim($_POST['host']); $gurl=trim($refs[$ZZI]); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $gurl); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_NOBODY,0); curl_setopt($ch,CURLOPT_TIMEOUT,6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $uref); curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $file_content=curl_exec ($ch); curl_close ($ch); sleep(1); $ZZI=$ZZI+1; } echo "<CENTER> <h1>URL</h1> <form action='index.php' method='post' name='logg'> <table> <tr> <br> <input type='text' name='host' size=60><br><br> <td valign='top'><strong>Ссылки </strong> <textarea cols=150 rows=10 name=aref>$aref</textarea> </td> </tr> <tr> <td ><input type='submit' name='qqqqq' value='отправить'></td> </tr> </table> </form> </CENTER> "; ?> </body> </html>
PHP: <?php set_time_limit(0); ob_implicit_flush(); # $refs=explode("\n",trim($aref)); # $uref=trim($host); # $gurl=trim($refs); $uref = "http://referer.com/"; $gurl = "http://host.com/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $gurl); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_NOBODY,0); curl_setopt($ch,CURLOPT_TIMEOUT,6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_REFERER, $uref); curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $file_content=curl_exec ($ch); curl_close ($ch); ?> Такой код прекрасно передает реферер. Так что ищи ошибку в своей форме, и в том, как она что передает. Там все так сумбурно, что я не понял, для чего она. И имена переменных странные. Но несколько советов - 1) Почитай про register_globals, про основы работы с формами и это. 2) Сделай себе страничку <?php echo $_SERVER['HTTP_REFERER']; ?> и отлаживай скрипт ей, выводя на экран содержимое странички запроса.
не пойму что странного в именах переменных, а передаются они вполне нормально, только все равно не работает. может проблема с хостингом?
хостинг _hut.ru вот более понятный код, может я всетаки что-то пропустил Code: <? if (empty($prox)) { $prox="1.11.11.11:39"; } if (empty($_POST['aref'])||empty($_POST['ddor'])) { exit; } set_time_limit(0); ob_implicit_flush(); $refs=explode("\n",trim($_POST['aref'])); $ZZI=0; WHILE ( (count($refs)>$ZZI) && ($ZZI<50) ) { echo trim($refs[$ZZI])." ok <br>"; ob_flush(); $uref=trim($_POST['ddor']); $gurl=trim($refs[$ZZI]); # print($uref)." ok <br>"; # print($gurl)." ok <br>"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $gurl); curl_setopt($ch, CURLOPT_PROXY, $prox); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_NOBODY,0); curl_setopt($ch, CURLOPT_TIMEOUT,6); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_REFERER, $uref); curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $file_content=curl_exec ($ch); curl_close ($ch); sleep(1); $ZZI=$ZZI+1; } ?> или лучше подскажите хост с поддержкой CURL желательно бесплатный ну или за пару баксов в месяц