помогите с Curlом

Discussion in 'PHP' started by vitek10, 21 Jun 2007.

  1. vitek10

    vitek10 New Member

    Joined:
    21 Jun 2007
    Messages:
    21
    Likes Received:
    2
    Reputations:
    0
    подскажите почему не передается 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 не приходит.
    подскажите в чем проблема :confused:
     
  2. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    ну попробуй $_POST['host']
     
  3. vitek10

    vitek10 New Member

    Joined:
    21 Jun 2007
    Messages:
    21
    Likes Received:
    2
    Reputations:
    0
    не помогает
    пробовал . что-то куда-то типа отсылает, но в ресурсе не видно, хотя через minibrowser все отсылается, значит сайт принимает подобные данные...
    (для тренировки пользую _http://slotvent.com/guestbook/
    в нем длинный TOP и можно отслеживать поступление данных :D ),и если бы CURL был отключен на хосте - я полагаю выдавалась бы ошибка... :confused:
    вот скрипт
    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])."   &nbsp;&nbsp;&nbsp; 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>
    
     
    #3 vitek10, 21 Jun 2007
    Last edited: 21 Jun 2007
  4. hhover

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

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
    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($chCURLOPT_URL$gurl);
        
    curl_setopt($chCURLOPT_HEADER,0);
        
    curl_setopt($chCURLOPT_NOBODY,0);
        
    curl_setopt($ch,CURLOPT_TIMEOUT,6);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($chCURLOPT_REFERER$uref);
        
    curl_setopt($chCURLOPT_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']; ?> и отлаживай скрипт ей, выводя на экран содержимое странички запроса.
     
  5. vitek10

    vitek10 New Member

    Joined:
    21 Jun 2007
    Messages:
    21
    Likes Received:
    2
    Reputations:
    0
    не пойму что странного в именах переменных, а передаются они вполне нормально,
    только все равно не работает. может проблема с хостингом?
     
  6. hhover

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

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
    Конечно, в нем все дело!
     
  7. vitek10

    vitek10 New Member

    Joined:
    21 Jun 2007
    Messages:
    21
    Likes Received:
    2
    Reputations:
    0
    хостинг _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])."   &nbsp;&nbsp;&nbsp; ok <br>";
    	ob_flush();
    
    	$uref=trim($_POST['ddor']);
    	$gurl=trim($refs[$ZZI]);
    #	print($uref)."   &nbsp;&nbsp;&nbsp;ok <br>";
    #	print($gurl)."   &nbsp;&nbsp;&nbsp; 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
    желательно бесплатный ну или за пару баксов в месяц
     
    #7 vitek10, 21 Jun 2007
    Last edited: 21 Jun 2007
  8. vitek10

    vitek10 New Member

    Joined:
    21 Jun 2007
    Messages:
    21
    Likes Received:
    2
    Reputations:
    0
    тема закрыта. поменял хостинг и все в елочку
    всем спасибо