За последние 24 часа нас посетили 18594 программиста и 1732 робота. Сейчас ищут 1026 программистов ...

не могу авторизоваться на ресурсе CURL

Тема в разделе "Прочее", создана пользователем poryt, 13 янв 2010.

  1. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Здравствуйте. Соб-сно не могу авторизоваться на ресурсе, с помощью CURL.
    Вот код
    PHP:
    1. $url="http://mirtus.ru/functions/log.php";
    2. $post="login=test_for_pro&password=test_for_pro&remember=on&submitButton=Войти";
    3. $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt';
    4. $ch = curl_init();
    5. curl_setopt($ch, CURLOPT_URL,$url);
    6. curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    8. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    9. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    10. curl_setopt($ch, CURLOPT_POST, 1);
    11. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    12. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    13. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    14. curl_setopt($ch, CURLOPT_NOBODY, 0);
    15. curl_setopt($ch, CURLOPT_HEADER, 0);
    16. $result = curl_exec($ch);
    17.  
    После пытаюсь зайти в новости.
    PHP:
    1.  
    2. $url="http://mirtus.ru/news";
    3. $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt';
    4. $ch = curl_init();
    5. curl_setopt($ch, CURLOPT_URL,$url);
    6. curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    8. curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    9. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    10. curl_setopt($ch, CURLOPT_POST, 0);
    11. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    12. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    13. curl_setopt($ch, CURLOPT_NOBODY, 0);
    14. curl_setopt($ch, CURLOPT_HEADER, 0);
    15. $result = curl_exec($ch);
    16.  
    17. print $result;
    Но почему-то не могу авторизоваться, может кто подсказать, есть ли где-то ошибка?Или может кто-то сможет сам попробовать авторизоваться?
    Заранее спасибо.
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Сложно сказать. Там может привязка кук по IP, по браузеру. Хедеры где?
     
  3. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Всмысле где? Их нужно посылать?
    (Status-Line) HTTP/1.1 200 OK
    Server nginx/0.6.39
    Date Tue, 12 Jan 2010 23:11:26 GMT
    Content-Type text/html; charset=windows-1251
    Transfer-Encoding chunked
    Connection keep-alive
    X-Powered-By PHP/5.1.6
    Expires Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma no-cache

    Вот что сниф ловит, куда их привезать? Каким образом?
     
  4. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Смысл еще в том, что как бы не создаются куки. Допустим если вручную ставить галку "Запомнить меня", то есессно пишутся в куки хэш пароля и пасс. Но вот что-то если слать курлом жто, то ничего не запоминается, как будето авторизация не проходит.

    Вообще, по сути верно же вроде всё делаю? Если не брать в расчет какой-нибудь хитрый метод авторизации.
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Да вот дело в том, что вот так, сделал в с помощью форума спамер для соцсети, потом появляется реклама "сделаю спам-рассылку по миллиону юзеров за 100$".
     
  6. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Да, появляются. Но я гарантирую, что этот ресурс никогда не догонит контакт. соц сетей, кроме одноклассников, контакта и моймир уже не будет. Никто с уже работающих никуда не уйдет.
    Я просто хочу потренироваться в кодинге.
    Таким способом авторизации, как я писал выше можно спокойно авторизироваться на мейл.ру.
    В общем, спасибо за пару советов, не хочется ничего доказывать.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    надо как минимум передавать user-agent
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Заголовки запроса
    Host mirtus.ru
    User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
    Accept */*
    Accept-Language ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding gzip,deflate
    Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive 300
    Connection keep-alive
    Content-Type application/x-www-form-urlencoded; charset=UTF-8
    X-Requested-With XMLHttpRequest
    Referer http://mirtus.ru/login.php
    Content-Length 18
    Cookie PHPSESSID=8mh933d6adko4hqm6ij369hl86; header=1; color=1
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    привежи себе это сам знаешь куда.
    =)
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  11. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    440Hz
    Дешевый клон вконтакта клонирующего фейсбук =)

    А загрузил картинку вместо mp3, а мне написали, что спам запрещен =)
     
  12. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Вот какая конструкция получилась, но всё также.
    Ругается
    curl_setopt(): supplied argument is not a valid cURL handle resourc
    на
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, "X-Requested-With: XMLHttpRequest");

    Пробовал сначала просто получать куки при заходе, а далее с ними авторизироваться.
    curl_setopt($ch, CURLOPT_HEADER, 1); ставил 0 и 1 для теста.

    $post_array = array('login'=>'test_for_pro', 'password'=>'test_for_pro', 'remember'=>'on');

    while(list($name,$value) = each($post_array)) {
    $res[] = urlencode($name)."=".urlencode($value);
    }
    $post = implode("&", $res);
    $url="http://mirtus.ru/functions/log.php";
    $cookie = str_replace('\\', '/', dirname(__FILE__)) . 'cookies.txt';
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_REFERER,"http://mirtus.ru/login.php");
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 MRA 5.5 (build 02842) Firefox/3.5.7 (.NET CLR 3.5.30729) sputnik unknown");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, "X-Requested-With: XMLHttpRequest");
    curl_setopt($ch, CURLOPT_NOBODY, 0);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $result = curl_exec($ch);
    curl_close($ch);

    print_r ($result);
     
  13. poryt

    poryt Активный пользователь

    С нами с:
    13 янв 2010
    Сообщения:
    17
    Симпатии:
    0
    Всё, получилось.

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-REQUESTED-WITH: XMLHttpRequest'));
    Верным способом вписал строчку.
    Спасибо 440Hz и Kreker
     
  14. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    я написал "автоматизированное опубликование новостей в форуме", без всяких форумов. Я плохой?
     
  15. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Хуже. Ты какашка.
     
  16. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Буду сидеть и вонять :)
    делайте каптчи нормальные и не будет проблем с автоматикой =)