[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: cURL авторизация
Bogdan1975
Необходима помощь в написании участка кода (PHP) для авторизации на площадке aukro.ua
Самому справиться не получается - очевидно где-то куки теряются.
Сколь будет стоить данная услуга?
Игорь_Vasinsky
тут видимо вот в чём нюанс, данные передаются на http://aukro.ua/sk_post_login.php в GET

session=ODgxZlAIUFIPDgkDVA8BBglbBlIAXVRVCAsEUwEJVVNcXAEEUQ8ABwkOBVdTDVAFCQ8CVVIJYjhlZA%3D%3D
&global_login_hash=67928dfadf7aad0d80061947c7c8f1f872170aec
&session_login_hash=7fb689b8ad05f05c63350c0414ab6dd09f479a70
&url=NmY3MFlCRUQMSRhRRF1DWxgTVh9cV1haRgdQVW5aXlNfCBlAWUYxNjE0
&no_dir=1

вот этот вот хеш, с солью или нет - вес проверяется. также видимо и проверяется хеш referer + session_id


вообщем постарались ребята.

это моё предположение.


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Bogdan1975
В принципе я эти данные беру из изначальной формы (enter_login.php) из хидденов и передаю дальше.
Там в одном месте идет переадресация не 302 переходом, а мета тегом refresh, соотвтетственно cUrl на этом месте отдает результат. Так вот .... если я этот резльтат отдаю броузеру, то броузер приходит на стартовую страничку залогиненным, а если я передаю cURL'у то остаюсь незалогиненным. Не могу понять в чем дело, но чую, что где-то что-то в куках теряется
walerus
Bogdan1975 а кто или что мешает перейти Курлом по ссылке которая в рефреше, далее?
Цитата
Так вот .... если я этот резльтат отдаю броузеру, то броузер приходит на стартовую страничку залогиненным, а если я передаю cURL'у то остаюсь незалогиненным.

Как то непонятно, если Вы скриптом, доходите до рефреша и отдаете в броузер результат, после чего, он рефрешится на титульную страницу залогиненым, то получается куки не используются?, т.к. у скрипта (курла) свои куки, у броузера соответственно свои. Либо же что то Вы недоговариваете или недосмотрели сами чего то.
Bogdan1975
Цитата (walerus @ 10.04.2012 - 18:15)
... или недосмотрели сами чего то.

Вот и я так думаю, поэтому и обращаюсь - сам не справлюсь, знаний не хватает
walerus
Bogdan1975 - Свой код не покажите?
walerus
Заходим на страницу логина
curl_setopt( $curl, CURLOPT_REFERER, 'http://www.google.com/' );
curl_setopt( $curl, CURLOPT_URL, 'http://aukro.ua/mainpage_login.php' );


получаем формы( тут уж как удобнее, регулярки, классы, DOM )
[fields] => Array
(
[
global_login_hash] => acb1f5cdf420c62d630ff80a2309a6c72ae430
[session] => NjgzYQVYB1sODQBRDAACCAZbUFYGC1BaAg1XVlEOXFsAAQZWBwBUAQJbUgcFWbAABRAwUJNTlkOA==
[
session_login_hash] => 585f20715234886ba8b9828a2b6d927bfcb2
[url] => NmYQMSRhRRF1DWxgTVh9cV1haRgdQVW5aXlNfCBlAWUYxNjE0
[cod] => OGZkZlVlNJk
[user_login] =>
[
user_password] =>
)


вот такие поля у меня(параметры полей изменены мной, имена полей оригинальные ).

Указываем свои данные в
[user_login] =>
[
user_password] =>

и отправляем все на
curl_setopt( $curl, CURLOPT_REFERER, 'http://aukro.ua/mainpage_login.php' );
curl_setopt( $curl, CURLOPT_URL, 'https://ssl.aukro.ua/login.php' );
curl_setopt( $curl, CURLOPT_POST, 1);
curl_setopt( $curl, CURLOPT_POSTFIELDS, $form);
$content = curl_exec($curl);

Далее переходим куда нужно
curl_setopt( $curl, CURLOPT_REFERER, 'https://ssl.aukro.ua/login.php' );
curl_setopt( $curl, CURLOPT_URL, 'http://aukro.ua/myaccount/' ); // Сюда
curl_setopt( $curl, CURLOPT_URL, 'http://aukro.ua/tv-video-radio' );// или Сюда
curl_setopt( $curl, CURLOPT_POST, 0);
$content = curl_exec($curl);
print_r($content);


НАСТРОЙКИ КУРЛА

define('ROOT', dirname(__FILE__).'/');
clearstatcache();

//генерируем имя файла для куки
$cookie_filename = ROOT.'temp/'.uniqid(md5(time()), true).'.tmp';

//настраиваем курл
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);


Все. Логинится с пол тычка.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.