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

Juri

Мой дом здесь!
Заблокирован
Регистрация
5 Окт 2007
Сообщения
1.064
Реакции
200
  • Автор темы
  • Заблокирован
  • #1
Здравствуйте, помогите решить проблему с авторизацией курлом.

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

PHP:
$url = 'http://online.kandagar.com/MasterWebStandard/Extra/ttt.aspx';
$login = 'test';
$password = 'test';
$dat = 'OK';
 
 
  $ch = curl_init();
 
  curl_setopt($ch, CURLOPT_URL, $url);
  // откуда пришли на эту страницу
  curl_setopt($ch, CURLOPT_REFERER, 'http://online.kandagar.com/');
  // cURL будет выводить подробные сообщения о всех производимых действиях
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS,'ctl00$Login$ctl01='.$login.'&ctl00$Login$ctl02='.$password.'&ctl00$Login$ctl03=OK');
 
  curl_setopt($ch, CURLOPT_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($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  //сохранять полученные COOKIE в файл
 
  $result=curl_exec($ch);
 
  $error = curl_error($ch).'('.curl_errno($ch).')';
echo $error;
      curl_close($ch);

но все время получаю FALS хотя логин пароль верные. Никак не пойму куда копать
Спасибо заранее
 
Смотрю строчка-напоминание есть - //сохранять полученные COOKIE в файл, а самого сохранения кук в файл нет :). Попробуйте использовать куки при авторизации.
 
  • Заблокирован
  • #3
Зарегался... Не пускает на сайте...
HTML:
Вы ввели неправильный пароль.
Попробуйте еще раз. Обратите внимание не включен ли у Вас Caps Lock
и на каком языке Вы вводите пароль.
или акк должны активировать или не работает у них авторизация
 
  • Автор темы
  • Заблокирован
  • #4
Зарегался... Не пускает на сайте...
HTML:
Вы ввели неправильный пароль.
Попробуйте еще раз. Обратите внимание не включен ли у Вас Caps Lock
и на каком языке Вы вводите пароль.
или акк должны активировать или не работает у них авторизация
Акк должны активировать, тестовые
test
test
указаны в коде выше

В файлик кук пишется
# Netscape HTTP Cookie File
# Для просмотра ссылки Войди или Зарегистрируйся
# This file was generated by libcurl! Edit at your own risk.

#HttpOnly_online.kandagar.com FALSE / FALSE 0 ASP.NET_SessionId ohty1fpro2xbj0lreujqwopm
 
вот код, у меня получилось авторизоваться
PHP:
$url = 'http://online.kandagar.com/MasterWebStandard/Extra/ttt.aspx';
$login = 'test';
$password = 'test';
$dat = 'OK';
 
 
  $ch = curl_init();
 
  curl_setopt($ch, CURLOPT_URL, $url);
  // откуда пришли на эту страницу
  curl_setopt($ch, CURLOPT_REFERER, 'http://online.kandagar.com/');
  // cURL будет выводить подробные сообщения о всех производимых действиях
 
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
 
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_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($ch, CURLOPT_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($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  //сохранять полученные 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);
 
ООО Спасибо! Как раз зашёл поискать решение с авторизацией. Спасибо, авторизация работает.
 
  • Автор темы
  • Заблокирован
  • #7
Спасибо, я тоже уже допер что нужно было все поля формы указывать даже скрытые и пустые, но теперь не много другая проблема, почему то все возвращается в utf-8 как прописать что б все шло в родной кодировке windows-1251
 
$str=iconv("utf-8","windows-1251",$str);
 
Назад
Сверху