Помогите с cURL

Discussion in 'PHP' started by Edward, 21 Jan 2011.

  1. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Вот пример кода:
    PHP:
    <?php
        $ch 
    curl_init('https://auth.mail.ru/cgi-bin/auth');
        
    curl_setopt($chCURLOPT_POST1);
        
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)
    '
    );
        
    $headers = array ('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    '
    'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    '
    'Accept-Encoding: gzip,deflate
    '
    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    '
    );
        
    curl_setopt($chCURLOPT_HTTPHEADER,$headers);
        
    curl_setopt($chCURLOPT_REFERER"http://mail.ru");
        
    curl_setopt($chCURLOPT_POSTFIELDS'Login=mail&Domain=inbox.ru&Password=password');
        
    curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");  
        
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
        
    curl_setopt($chCURLOPT_HEADERS1);
        
    $result curl_exec($ch);
        
    curl_close($ch);
        echo 
    $result;
    ?>
    После запуска ничего не происходит, отснифил запросы, вроде обращается к серверу mail.ru с моими данными, но прежде почему то обращается ко всем поисковикам, точнее к большинству. А еще в заголовке запроса в самом начале пишется:
    Так и надо? возможно тут должны быть сервера mail.ru? Или это свидетельствует о том, что сначала идет обращение на локалхост к моему сценарию, а потом уже он выполняется.

    И еще: строки:
    PHP:
        curl_setopt($chCURLOPT_COOKIEJAR"cookie.txt");  
        
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");
    принимают куки или отправляют? Для того, что бы залогиниться, нужно предварительно как то получить куки, записать их в файл, потом, используя их, уже пробовать залогиниться? Нужно ли чистить куки в броузере перед запуском такого скрипта?
     
  2. ki_ku

    ki_ku New Member

    Joined:
    20 Jan 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    если ничего не происходит, как вариант, попробуй еще дописать в запрос

    Code:
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    - это вернёт результат запроса в переменную $result

    Что выводит curl_getinfo()?

    Code:
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");[HTML]br[/HTML]  curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    Как я понимаю, ты располагаешь пришедшие в ответ кукисы в файле cookie.txt у себя где-то. При первом заходе кукис не должно быть, они тебе вышлются после авторизации, а дальше id сессии будет пересылаться с каждым твоим запросом, чтобы подтвердить, что это действительно владелец аккаунта.
     
  3. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    PHP:
    <?php
      $ch 
    curl_init("http://win.mail.ru/cgi-bin/auth");
      
    curl_setopt($ch,CURLOPT_POST,1);
      
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
      
    curl_setopt($ch,CURLOPT_COOKIEFILE"cookie.txt");
      
    curl_setopt($ch,CURLOPT_COOKIEJAR"cookie.txt");
      
    curl_setopt($ch,CURLOPT_POSTFIELDS,"Login=login&Domain=mail.ru&Password=qwerty");
      
    curl_exec($ch);
    ?>
     
    #3 SHiNiGaMi, 21 Jan 2011
    Last edited: 21 Jan 2011
    2 people like this.
  4. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Вариант работает, спасибо.

    Только файл с куками пустой, как оно не принимая куки что ли логинится?
     
  5. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    файл с куками лежит в папке апача, т.к. курл не является разработкой создателей PHP а является отдельным проектом
     
  6. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Нашел, спасибо.