Логин в cURLe

Тема в разделе "PHP", создана пользователем argh, 2 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. argh

    argh Создатель

    Регистр.:
    18 мар 2008
    Сообщения:
    46
    Симпатии:
    0
    Привет всем. Я изучаю курл. Взял для примера рамблер. Хочу залогиниться.
    Действую так:
    Зашел на http://planeta.rambler.ru. Смотрю в код.
    Нашел - <input name="login"
    <input name="passw" эти имена использую для создания пост запроса.

    PHP:
     $url="http://planeta.rambler.ru"
     
    $post "login=Vasya&passw=Parol_Vasi";
        
    $ch curl_init();
              
    curl_setopt($chCURLOPT_URL$url);
              
    curl_setopt($chCURLOPT_POSTtrue);
              
    curl_setopt ($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1)");
              
    curl_setopt($chCURLOPT_POSTFIELDS$post);
              
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
              
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
                      
    $result curl_exec($ch);
          
                      echo 
    $result;
     
    curl_close($ch);
    В результат он мне выдает просто страницу http://planeta.rambler.ru
    Где я ошибся?
    (Он после логина редиректит на другой урл - что тогда должно выдаваться в $result?)

    П.с. Правильный и неправильный пароль дают тот же результат

    Хелп
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Добавь curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    Тогда curl пройдёт по редиректу.
     
    argh нравится это.
  3. qwyjibo

    qwyjibo Постоялец

    Регистр.:
    27 янв 2009
    Сообщения:
    64
    Симпатии:
    12
    работает

    Вот так заработало:
    PHP:
    <?php
    $url
    ="https://id.rambler.ru/script/auth.cgi"
    $post "mode=login&back=http%3A%2F%2Fplaneta.rambler.ru%2Fusers%2F&url=&login=loginvasi&passw=passwvasi&long_session=on";
    $ch curl_init();
        
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
            
    curl_setopt($chCURLOPT_URL$url);
            
    curl_setopt($chCURLOPT_POSTtrue);
            
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1)");
            
    curl_setopt($chCURLOPT_POSTFIELDS$post);
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
        
    curl_setopt($chCURLOPT_COOKIESESSION1);
        
    curl_setopt($chCURLOPT_COOKIEFILErand(1111,99999).'.ck');
        
    curl_setopt($chCURLOPT_REFERRER"http://planeta.rambler.ru/");
                
    $result curl_exec($ch);
        
                echo 
    $result;
    curl_close($ch);
    ?>
    Во-первых, не все поля передавались. Во-вторых, я добавил строчки которые отвечают за прием и запись кук.
     
    argh нравится это.
Статус темы:
Закрыта.