Форум по 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  
Старый 14.06.2011, 17:30
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

Увы, но тоже не помогает.

Проверил ч/з Http Analiser - возвращается заглавная страница.
При этом он теперь даже не логинится, т.е. аунтификация вообще не проходит.

Если через браузер.
Причем заметил что после редиректа с login.php на home.php происходим смена значения сессии (PHPSessID)
Такое ощущение что сессия пересоздается.

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

если запустить это http://data.cod.ru/110772 ввести логин/пароль, нажать кнопку и подождать ответа, что будет?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 14.06.2011, 18:05
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

Аунтификация тоже не проходит.
POST есть, а GET нету.
Ответить с цитированием
  #11  
Старый 14.06.2011, 18:37
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

пароль - ХулиоПедалис
логин - 986532741qwerty

Постестил сейчас http analiser, на рабочей версии (т.е. та что не пашет с редиректом) и через браузер.
Ощущение будто в полурабочей проге инициализируются со стороны сервака не все значения в кукис.

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

Цитата:
Сообщение от ToDayGoodDay
Аунтификация тоже не проходит.
POST есть, а GET нету.

ну...

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

Хм, а почему у меня не пашет. Даже сейчас...

ЗЫ: а можно увидеть код рабочей программки ?
Ответить с цитированием
  #14  
Старый 14.06.2011, 19:20
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

не знаю. думаю стоит еще кого-то попросить потестить
код тот же http://www.delphisources.ru/forum/sh...22&postcount=7 только StrPage (StrPage:=AIdHTTP.Get('/home.php')) еще и в TWebBrowser передается для отображения.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #15  
Старый 14.06.2011, 19:55
ToDayGoodDay ToDayGoodDay вне форума
Прохожий
 
Регистрация: 13.06.2011
Сообщения: 14
Репутация: 10
По умолчанию

Не понял что изменилось в этом:

StrPage:=AIdHTTP.Get('/home.php')

Что-то было дописано до или после этого ?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter