maxy666
Профессор
- Регистрация
- 23 Июл 2012
- Сообщения
- 143
- Реакции
- 44
- Автор темы
- #1
Пробую авторизоваться на интерент аукционе аurko.ua (украинская версия интернет аукциона наподобие молоток.ру)
Нашел версию авторизации на форуме, правда за 2012 год. С того времени способ авторизации немного изменился, добавилось несколько защитных полей и изменилась структура формы:
Список полей которые нужно передавать при авторизации:
userForm_redirectUri userForm[redirectUri]
userForm_clientId userForm[clientId]
userForm_responseType userForm[responseType]
userForm_scope userForm[scope]
userForm_state userForm[state]
value="{"request":"\/myaccount\/","urlPrefix":"http:\/\/aukro.ua","cobrandId":0,"token":"cf075b4c314b1cbcf040415b7400c342","guest":[]}" />
userForm_login userForm[login]
userForm_password userForm[password]
userForm__token userForm[_token]
Немного подправил, но авторизовать все равно не получается, посмотрите пожалуйста в чем ошибка. Или может у кого есть готовый вариант авторизации.
Нашел версию авторизации на форуме, правда за 2012 год. С того времени способ авторизации немного изменился, добавилось несколько защитных полей и изменилась структура формы:
Список полей которые нужно передавать при авторизации:
userForm_redirectUri userForm[redirectUri]
userForm_clientId userForm[clientId]
userForm_responseType userForm[responseType]
userForm_scope userForm[scope]
userForm_state userForm[state]
value="{"request":"\/myaccount\/","urlPrefix":"http:\/\/aukro.ua","cobrandId":0,"token":"cf075b4c314b1cbcf040415b7400c342","guest":[]}" />
userForm_login userForm[login]
userForm_password userForm[password]
userForm__token userForm[_token]
Немного подправил, но авторизовать все равно не получается, посмотрите пожалуйста в чем ошибка. Или может у кого есть готовый вариант авторизации.
PHP:
<?php
include('simple_html_dom.php'); // подключаем Simple HTML DOM
$url = 'http://aukro.ua'; // URL сайта на котором будем авторизоваться
$urlTo = 'https://ssl.aukro.ua/login.php'; // URL на которой будем слать POST данные
$login = 'xxxxxxx';
$pass = 'xxxxxxxxx';
$ch = curl_init('http://aukro.ua/mainpage_login.php');
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); // попытка стереть куки
curl_setopt ($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0");
$content=curl_exec($ch);
//echo $content;
$html = str_get_html($content);
$global_login_hash=$html->find('userForm[id=userForm_login] input[name=global_login_hash]',0)->value;
$session=$html->find('userForm[id=userForm_login] input[name=session]',0)->value;
$session_login_hash=$html->find('userForm[id=userForm_login] input[name=session_login_hash]',0)->value;
$url=$html->find('userForm[id=userForm_login] input[name=url]',0)->value;
$cod=$html->find('userForm[id=userForm_login] input[name=cod]',0)->value;
$token=$html->find('userForm[id=token] input[name=token]',0)->value;
$version=$html->find('userForm[id=userForm_login] input[name=version]',0)->value;
//echo $global_login_hash.'<br>';
unset($ch);
$post1='global_login_hash='.$global_login_hash.'&session='.$session.'&session_login_hash='.$session_login_hash.'&url='.$url.'&cod='.$cod;
$post1_1='session='.$session.'&global_login_hash='.$global_login_hash.'&session_login_hash='.$session_login_hash.'&url='.$url.'&cod='.$cod;
//'&version='.$version;
$post2='&user_login='.$login.'&user_password='.$pass;
//echo $post1.'<br>';
$ch = curl_init(); // Инициализируем сеанс CURL
//curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
// не проверять SSL сертификат
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_VERBOSE, TRUE);
// не проверять Host SSL сертификата
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt($ch, CURLOPT_REFERER, 'https://ssl.aukro.ua/enter_login.php?'.$post1.'&version='.$version);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0");
curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $post1_1.'&version='.$version.$post2); // Передаем POST данные
//Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.
//curl_setopt($ch, CURLOPT_HEADER, true);
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...').
// Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
$html = curl_exec($ch); // Записываем пришедшие данные в переменную
$f=fopen('html1.txt','w');
fwrite($f,$html);
fclose($f);
//$result = curl_multi_getcontent ($ch);
$a1=strpos($html,'/direct_login.php');
$a2=strpos($html,'><P><b>Автоматическое');
$str=substr($html,$a1,$a2-$a1-1);
$f=fopen('str.txt','w');
fwrite($f,$str);
fclose($f);
echo $str.'<br>';
$tm=time();
while ((time()-$tm)<3);
curl_close($ch);
//echo $html;
/*
$tm=time();
while ((time()-$tm)<3);
*/
$ch = curl_init('http://www.aukro.ua'.$str);
//curl_setopt($ch, CURLOPT_URL, 'http://www.aukro.ua'.$str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt ($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_REFERER, 'https://ssl.aukro.ua'.$str);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0");
curl_setopt($ch, CURLOPT_POST, false); // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_HTTPGET, true);
//Установите эту опцию в ненулевое значение, если вы хотите, чтобы шапка/header ответа включалась в вывод.
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$html = curl_exec($ch); // Записываем пришедшие данные в переменную
$f=fopen('html2.txt','w');
fwrite($f,$html);
fclose($f);
curl_close($ch); // Закрываем сеанс работы CURL
echo 'html: '.$html.'<br>';
//echo 'result: '.$result.'<br>';
?>
Последнее редактирование: