Авторизация через curl

Тема в разделе "Как сделать...", создана пользователем Juri, 22 фев 2012.

  1. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Здравствуйте, помогите решить проблему с авторизацией курлом.

    Есть форма авторизации системы онлайн бронирования, нужно авторизироваться через нее с удаленного сервера.

    PHP:
    $url 'http://online.kandagar.com/MasterWebStandard/Extra/ttt.aspx';
    $login 'test';
    $password 'test';
    $dat 'OK';
     
     
      
    $ch curl_init();
     
      
    curl_setopt($chCURLOPT_URL$url);
      
    // откуда пришли на эту страницу
      
    curl_setopt($chCURLOPT_REFERER'http://online.kandagar.com/');
      
    // cURL будет выводить подробные сообщения о всех производимых действиях
      
    curl_setopt($chCURLOPT_HEADER1);
      
    curl_setopt($chCURLOPT_VERBOSE1);
      
    curl_setopt($chCURLOPT_POST1);
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
      
    curl_setopt($chCURLOPT_POSTFIELDS,'ctl00$Login$ctl01='.$login.'&ctl00$Login$ctl02='.$password.'&ctl00$Login$ctl03=OK');
     
      
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
      
    curl_setopt($chCURLOPT_HEADER1);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
      
    //сохранять полученные COOKIE в файл
     
      
    $result=curl_exec($ch);
     
      
    $error curl_error($ch).'('.curl_errno($ch).')';
    echo 
    $error;
          
    curl_close($ch); 
     
    но все время получаю FALS хотя логин пароль верные. Никак не пойму куда копать
    Спасибо заранее
     
  2. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    Смотрю строчка-напоминание есть - //сохранять полученные COOKIE в файл, а самого сохранения кук в файл нет :). Попробуйте использовать куки при авторизации.
     
  3. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    Зарегался... Не пускает на сайте...
    HTML:
    Вы ввели неправильный пароль.
    Попробуйте еще раз. Обратите внимание не включен ли у Вас Caps Lock
    и на каком языке Вы вводите пароль.
    или акк должны активировать или не работает у них авторизация
     
  4. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Акк должны активировать, тестовые
    test
    test
    указаны в коде выше

    В файлик кук пишется
    # Netscape HTTP Cookie File
    # http://curl.haxx.se/rfc/cookie_spec.html
    # This file was generated by libcurl! Edit at your own risk.

    #HttpOnly_online.kandagar.com FALSE / FALSE 0 ASP.NET_SessionId ohty1fpro2xbj0lreujqwopm
     
  5. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    вот код, у меня получилось авторизоваться
    PHP:
    $url 'http://online.kandagar.com/MasterWebStandard/Extra/ttt.aspx';
    $login 'test';
    $password 'test';
    $dat 'OK';
     
     
      
    $ch curl_init();
     
      
    curl_setopt($chCURLOPT_URL$url);
      
    // откуда пришли на эту страницу
      
    curl_setopt($chCURLOPT_REFERER'http://online.kandagar.com/');
      
    // cURL будет выводить подробные сообщения о всех производимых действиях
     
    curl_setopt($chCURLOPT_COOKIESESSIONTRUE);
    curl_setopt ($chCURLOPT_COOKIEJAR'cookies.txt');
    curl_setopt ($chCURLOPT_COOKIEFILE'cookies.txt');
     
      
    curl_setopt($chCURLOPT_HEADER0);
      
    curl_setopt($chCURLOPT_VERBOSE1);
      
    curl_setopt($chCURLOPT_POST1);
      
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
      
    curl_setopt($chCURLOPT_POSTFIELDS,'ctl00_ScriptManager_HiddenField=%3B%3BAjaxControlToolkit%2C+Version%3D3.5.50401.0%2C+Culture%3Dneutral%2C+PublicKeyToken%3D28f01b0e84b6d53e%3Aru%3Abeac0bd6-6280-4a04-80bd-83d08f77c177%3A475a4ef5%3A5546a2b%3A497ef277%3Aeffe2a26%3Aa43b07eb%3A1d3ed089%3A751cdd15%3Adfad98a5%3A3cf12cf1&__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=&ctl00%24Login%24ctl01=test&ctl00%24Login%24ctl02=test&ctl00%24Login%24ctl03=OK&ctl00%24pageMessenger%24hidMessage=&ctl00%24pageMessenger%24hidRedirect=');
     
      
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
      
    curl_setopt($chCURLOPT_HEADER1);
      
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
      
    //сохранять полученные COOKIE в файл
     
      
    $result=curl_exec($ch);
     
      
    $error curl_error($ch).'('.curl_errno($ch).')';
      echo 
    $error;
      
    curl_close($ch);
      
    $file fopen('page.html','w');
      
    fwrite($file,$result);
      
    fclose($file);
      
     
    softsp, griffon и Juri нравится это.
  6. griffon

    griffon Создатель

    Регистр.:
    12 авг 2006
    Сообщения:
    29
    Симпатии:
    3
    ООО Спасибо! Как раз зашёл поискать решение с авторизацией. Спасибо, авторизация работает.
     
  7. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    Спасибо, я тоже уже допер что нужно было все поля формы указывать даже скрытые и пустые, но теперь не много другая проблема, почему то все возвращается в utf-8 как прописать что б все шло в родной кодировке windows-1251
     
  8. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
  9. griffon

    griffon Создатель

    Регистр.:
    12 авг 2006
    Сообщения:
    29
    Симпатии:
    3
    $str=iconv("utf-8","windows-1251",$str);
     
  10. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169