Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2009, 23:03   #1
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию Авторизация coppermine galery

Не получается пройти авторизацию с помощью idhttp на сайте galery.12a2009.org(Coppermine Photo Gallery).
Cookie получаю, POST запрос выдает что всё ок, а после последнего get запроса опять получаю сообщение с просьбой залогиниться.

Код:
Var data:TStringList;
    StrPage:string;
begin
  data:=TStringList.Create;
  data.Add('UserName=test');
  data.Add('PassWord=12345');
  data.Add('submitted=Вход');
  idHttp.Get('http://galery.12a2009.org');
  idhttp.Post('http://galery.12a2009.org/login.php?referer=index.php',data);
  StrPage:=idHttp.Get('http://galery.12a2009.org/');
  Memo1.Text:=StrPage;
В чём может быть проблема. Cookie получаю столько же как и в браузере.
slavec вне форума Ответить с цитированием
Старый 23.07.2009, 01:53   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

CookieManager подключен?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.07.2009, 02:13   #3
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

Да.
Вот кусок dfm.
Код:
object IdHTTP: TIdHTTP
    MaxLineAction = maException
    ReadTimeout = 0
    RecvBufferSize = 1
    OnWorkBegin = IdHTTPWorkBegin
    OnWorkEnd = IdHTTPWorkEnd
    AllowCookies = True
    HandleRedirects = True
    ProxyParams.BasicAuthentication = False
    ProxyParams.ProxyPort = 0
    Request.ContentLength = -1
    Request.ContentRangeEnd = 0
    Request.ContentRangeStart = 0
    Request.ContentType = 'text/html'
    Request.Accept = 'text/html, */*'
    Request.BasicAuthentication = False
    Request.Referer = 'http://galery.12a2009.org/upload.php'
    Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
    HTTPOptions = [hoForceEncodeParams]
    CookieManager = CookieManager
    Left = 192
    Top = 128
  end
  object IdAntiFreeze1: TIdAntiFreeze
    IdleTimeOut = 60
    OnlyWhenIdle = False
    Left = 192
    Top = 104
  end
  object CookieManager: TIdCookieManager
    Left = 192
    Top = 80
  end
slavec вне форума Ответить с цитированием
Старый 23.07.2009, 02:18   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так...а какая версия ИнДИ?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.07.2009, 02:52   #5
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

9. Сейчас поставлю последнюю. ТОлько сейчас прочитал о глюках в этой версии.
По результату установки отпишусь. Спасибо за мысль!!!
slavec вне форума Ответить с цитированием
Старый 24.07.2009, 17:34   #6
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

Поставил последнюю версию ИНДИ.
Теперь не работает процедура idhttpworkbegin.
Программа вылетает с ошибкой.
Изображения
Тип файла: jpg 9b258ec2c823.jpg (14.0 Кб, 127 просмотров)

Последний раз редактировалось slavec; 24.07.2009 в 17:38.
slavec вне форума Ответить с цитированием
Старый 24.07.2009, 22:34   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

надо смотреть весь код.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 25.07.2009, 00:34   #8
slavec
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 24
По умолчанию

.pas
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdCookieManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure Button1Click(Sender: TObject);
    procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
    memo1.Text:=idhttp1.get('http://galery.12a2009.org/upload.php');
    memo1.lines.add(idcookiemanager1.CookieCollection.Items[0].CookieText);
    memo1.lines.add(idcookiemanager1.CookieCollection.Items[1].CookieText);
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
    inc(i);

end;

end.
.dfm
Код:
object Form1: TForm1
  Left = 192
  Top = 114
  Width = 870
  Height = 640
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 0
    Top = 0
    Width = 862
    Height = 473
    Align = alTop
    Lines.Strings = (
      'Memo1')
    TabOrder = 0
  end
  object Button1: TButton
    Left = 32
    Top = 488
    Width = 817
    Height = 113
    Caption = 'Button1'
    TabOrder = 1
    OnClick = Button1Click
  end
  object IdHTTP1: TIdHTTP
    OnWorkBegin = IdHTTP1WorkBegin
    AllowCookies = True
    ProxyParams.BasicAuthentication = False
    ProxyParams.ProxyPort = 0
    Request.ContentLength = -1
    Request.Accept = 'text/html, */*'
    Request.BasicAuthentication = False
    Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
    HTTPOptions = [hoForceEncodeParams]
    CookieManager = IdCookieManager1
    Left = 496
    Top = 128
  end
  object IdCookieManager1: TIdCookieManager
    Left = 312
    Top = 184
  end
  object IdAntiFreeze1: TIdAntiFreeze
    IdleTimeOut = 60
    OnlyWhenIdle = False
    Left = 432
    Top = 200
  end
end
slavec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация. Jjoker Общие вопросы C/C++ 4 28.01.2009 23:17
Авторизация AIst PHP 5 03.12.2008 20:57
Авторизация на сайте gusluk Работа с сетью в Delphi 3 20.11.2008 14:40
Авторизация justas Работа с сетью в Delphi 0 21.12.2007 16:16
Автоматическая авторизация Novice777 Работа с сетью в Delphi 2 01.03.2007 16:56