
22.11.2010, 16:17
|
Начинающий
|
|
Регистрация: 05.10.2010
Сообщения: 112
Репутация: 1227
|
|
idHTTP...
Торможу уже три часа.
При обращении к сайту по адресу http://www.site.ru/auth/login/?auths...sword=PASSWORD
идёт авторизация.
Сниффером проверил - больше ничего не передаётся. Куки естественно ставятся.
Ну вот почему не могу авторизоваться?
Код:
var data:tstringlist;
PageProfile:string;
error:boolean;
begin
IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=true;
data:=tstringlist.create;
data.Add('authsave=1');
data.Add('login=LOGIN');
data.Add('password=PASSWORD');
//http://www.site.ru/auth/login/?authsave=1&login=LOGIN&password=PASSWORD
error:=false;
try
PageProfile:=IdHTTP1.Post('http://www.site.ru/auth/login/', data);
Memo1.Lines.Add(PageProfile);
except
error:=true;
end;
Плюнул на Delphi - достал любимый PHP:
PHP код:
$url = "http://www.site.ru/auth/login/"; //УРЛ, куда отправлять данные
$login = 'LOGIN'; //Логин
$password = 'PASSWORD'; //Пароль
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Полный путь до файла, где будем хранить куки
$authsave = '1'; //
$in = 'Вход'; //Кнопка входа
function auth($url) {
global $login, $pasword, $authsave, $user_cookie_file, $in; // Получаем все POST данные
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Куки раз
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Куки два
curl_setopt($ch, CURLOPT_POST,1); //Будем отправлять POST запрос
/*
Формируем и отправляем тот самый POST запрос.
Как видите, это простая строка, мало чем отличающаяся от GET.
*/
curl_setopt($ch, CURLOPT_POSTFIELDS,"login=$login&password=$password&authsave=1&submit=$in");
$html = curl_exec($ch);
curl_close($ch);
return $html; //
}
auth($url); // Авторизируемся.
function browser($url) {
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; //Получаем сохраненный после авторизации файл с куками.
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); //Подставляем куки раз
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); //Подставляем куки два
$html = curl_exec($ch);
curl_close($ch);
return $html; //Возвращаем ответ
}
Авторизация проходит на ура. Я уже не знаю, где может быть ошибка. Гляньте пожалуйста свежим глазом. 
|