![]() |
|
|
|
|
#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
|
|||
|
|||
|
Люди помогите блин я не понимаю че за кук куда и что надо писать((объясните пожалуйста плиииииз.))
|