![]() |
|
|
#1
|
|||
|
|||
|
------------------------------
Последний раз редактировалось ToDayGoodDay, 01.05.2013 в 18:13. |
|
#2
|
||||
|
||||
|
вполне нормальное явление после отправки POST запроса авторизации вернуться обратно на главную страницу сайта, но уже авторизованым.
я так понимаю основная задача Цитата:
Цитата:
|
|
#3
|
|||
|
|||
|
Это значит, что проверка пары логин-пароль верна и проходит.
Но после редиректа на home.php проиходит переадресация на login.php. Потом снова с login на home.php. И так 12 раз. После чего происходит окончательный вылет на heroeswm.ru |
|
#4
|
||||
|
||||
|
друг мой, вы про кукисы судя по всему забыли)))
кидайте на форму IdCookieManager, и в подключайте его к idhttp1; Код:
Idhttp1.CookieManager:=IdCookieManager1; |
|
#5
|
|||
|
|||
|
Кукисы есть, просто в скопированном куске кода их нет.
|
|
#6
|
||||
|
||||
|
NekitoSSSS, тут не в CookieManager проблема. к тому же если AllowCookies:=True; то CookieManager создается не явно:
Код:
procedure TIdCustomHTTP.ProcessCookies(ARequest: TIdHTTPRequest; AResponse: TIdHTTPResponse);
var
Cookies, Cookies2: TStringList;
i: Integer;
begin
Cookies := nil;
Cookies2 := nil;
try
if not Assigned(FCookieManager) and AllowCookies then
begin
CookieManager := TIdCookieManager.Create(Self);
FFreeOnDestroy := true;
end; |
|
#7
|
||||
|
||||
|
Код:
var
AStrings: TStrings;
AIdHTTP: TIdHTTP;
AIdCookieManager: TIdCookieManager;
StrPage: String;
begin
AIdHTTP:=TIdHTTP.Create(Self);
AIdCookieManager:=TIdCookieManager.Create(Self);
AStrings:=TStringList.Create;
AIdHTTP.CookieManager:=AIdCookieManager;
AIdHTTP.AllowCookies:=True;
AIdHTTP.HandleRedirects:=False;
AIdHTTP.Host:='www.heroeswm.ru';
AIdHTTP.Request.Referer:='http://www.heroeswm.ru/';
try
AStrings.Add('LOGIN_redirect=1');
AStrings.Add('login=********');
AStrings.Add('lreseted=1');
AStrings.Add('pass=********');
AStrings.Add('preseted=1');
AIdHTTP.Request.ContentType:='application/x-www-form-urlencoded';
try
AIdHTTP.Post('/login.php', AStrings);
except
if (AIdHTTP.ResponseCode div 100)=3 then
begin
ACookie:=AIdCookieManager.CookieCollection.Items[0].CookieName+'='+AIdCookieManager.CookieCollection.Items[0].Value+'; ';
ACookie:=ACookie+AIdCookieManager.CookieCollection.Items[1].CookieName+'='+AIdCookieManager.CookieCollection.Items[1].Value+'; ';
ACookie:=ACookie+AIdCookieManager.CookieCollection.Items[2].CookieName+'='+AIdCookieManager.CookieCollection.Items[2].Value;
AIdHTTP.AllowCookies:=False;
AIdHTTP.CookieManager:=nil;
AIdHTTP.Request.CustomHeaders.Text:='Cookie: '+ACookie;
AIdHTTP.Request.ContentType:='';
AIdHTTP.Request.ContentLength:=-1;
StrPage:=AIdHTTP.Get('/home.php');
if Pos('<a href="logout', StrPage)>0 then ShowMessage('Ok');
end;
end;
finally
AStrings.Free;
AIdCookieManager.Free;
AIdHTTP.Free;
end;
end; |
|
#8
|
|||
|
|||
|
Увы, но тоже не помогает.
Проверил ч/з Http Analiser - возвращается заглавная страница. При этом он теперь даже не логинится, т.е. аунтификация вообще не проходит. Если через браузер. Причем заметил что после редиректа с login.php на home.php происходим смена значения сессии (PHPSessID) Такое ощущение что сессия пересоздается. Последний раз редактировалось ToDayGoodDay, 14.06.2011 в 18:06. |
|
#9
|
||||
|
||||
|
если запустить это http://data.cod.ru/110772 ввести логин/пароль, нажать кнопку и подождать ответа, что будет?
|
|
#10
|
|||
|
|||
|
Аунтификация тоже не проходит.
POST есть, а GET нету. |
|
#11
|
|||
|
|||
|
пароль - ХулиоПедалис
логин - 986532741qwerty Постестил сейчас http analiser, на рабочей версии (т.е. та что не пашет с редиректом) и через браузер. Ощущение будто в полурабочей проге инициализируются со стороны сервака не все значения в кукис. Последний раз редактировалось ToDayGoodDay, 14.06.2011 в 18:44. |
|
#12
|
||||
|
||||
|
Цитата:
ну... ![]() |
|
#13
|
|||
|
|||
|
Хм, а почему у меня не пашет. Даже сейчас...
ЗЫ: а можно увидеть код рабочей программки ? |
|
#14
|
||||
|
||||
|
не знаю. думаю стоит еще кого-то попросить потестить
![]() код тот же http://www.delphisources.ru/forum/sh...22&postcount=7 только StrPage (StrPage:=AIdHTTP.Get('/home.php')) еще и в TWebBrowser передается для отображения. |
|
#15
|
|||
|
|||
|
Не понял что изменилось в этом:
StrPage:=AIdHTTP.Get('/home.php') Что-то было дописано до или после этого ? |