Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.06.2011, 21:30
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию Indy+Redirect

------------------------------

Последний раз редактировалось ToDayGoodDay, 01.05.2013 в 18:13.
Ответить с цитированием
  #2  
Старый 14.06.2011, 09:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

вполне нормальное явление после отправки POST запроса авторизации вернуться обратно на главную страницу сайта, но уже авторизованым.
я так понимаю основная задача
Цитата:
авторизация проходит
выполнена. и что значит
Цитата:
из-за редиректа все вылетает
?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 14.06.2011, 10:47
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

Это значит, что проверка пары логин-пароль верна и проходит.
Но после редиректа на home.php проиходит переадресация на login.php.
Потом снова с login на home.php.
И так 12 раз. После чего происходит окончательный вылет на heroeswm.ru
Ответить с цитированием
  #4  
Старый 14.06.2011, 15:16
Аватар для NekitoSSSS
NekitoSSSS NekitoSSSS вне форума
Начинающий
 
Регистрация: 02.05.2009
Адрес: Башкортостан, г.Благовещенск
Сообщения: 142
Версия Delphi: XE
Репутация: 13
По умолчанию

друг мой, вы про кукисы судя по всему забыли)))
кидайте на форму IdCookieManager, и в подключайте его к idhttp1;
Код:
Idhttp1.CookieManager:=IdCookieManager1; 
Ответить с цитированием
  #5  
Старый 14.06.2011, 15:30
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

Кукисы есть, просто в скопированном куске кода их нет.
Ответить с цитированием
  #6  
Старый 14.06.2011, 15:31
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

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  
Старый 14.06.2011, 15:51
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
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  
Старый 30.07.2011, 15:02
Max Yam@il Max Yam@il вне форума
Прохожий
 
Регистрация: 30.07.2011
Сообщения: 2
Репутация: 10
По умолчанию

Люди помогите блин я не понимаю че за кук куда и что надо писать((объясните пожалуйста плиииииз.))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter