|
|
#1
|
|||
|
|||
Indy+Redirect
------------------------------
Последний раз редактировалось 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
|
|||
|
|||
Люди помогите блин я не понимаю че за кук куда и что надо писать((объясните пожалуйста плиииииз.))
|