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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2014, 09:38   #1
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию POST / Get проблема

Добрый день уважаемые програмисты
у меня проблема прошу помоч
но очен прошу пишите конкретный выход из этой ситуации
не дайте линки на какието статьи

значет так

Код:

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, sSkinManager, Vcl.StdCtrls, sMemo,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, sEdit,
  Vcl.OleCtrls, SHDocVw, Vcl.ExtCtrls, sButton;

type
  TForm2 = class(TForm)
    sSkinManager1: TsSkinManager;
    IdHTTP1: TIdHTTP;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    Timer1: TTimer;
    WebBrowser1: TWebBrowser;
    sButton1: TsButton;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
post:tstringlist;
result:string;
begin
post:=tstringlist.create;
idhttp1.handleredirects:=true;

post.add('username='+sedit1.text);
post.add('password='+sedit2.text);
post.add('submit=loginbtn');
post.add('redirect_to=http://localhost/login/index.php');

result:=idhttp1.post('http://localhost/login/index.php',post);

if pos('logout.php' , result)>0 then

begin


 webbrowser1.Navigate('http://localhost');
webbrowser1.Align:=alclient;
sedit1.visible:=false;
sedit2.Visible:=false;
sbutton1.Visible:=false;
webbrowser1.Show;
timer1.Enabled:=true;

   end
else

messagedlg ('Not ready  ' , mtinformation ,[mbOK] ,0)


end;

procedure TForm2.FormCreate(Sender: TObject);
begin
webbrowser1.Hide;
end;

procedure TForm2.sButton1Click(Sender: TObject);
var
post:tstringlist;
result:string;
begin
post:=tstringlist.create;
idhttp1.handleredirects:=true;


post.add('username='+sedit1.text);
post.add('password='+sedit2.text);



result:=idhttp1.post('http://localhost/login/index.php',post);

if pos('logout.php' , result)>0 then

begin


 webbrowser1.Navigate('http://localhost');
webbrowser1.Align:=alclient;
sedit1.visible:=false;
sedit2.Visible:=false;
sbutton1.Visible:=false;
webbrowser1.Show;
timer1.Enabled:=true;
showmessage('ready') ;

   end
else

messagedlg ('Not Ready ' , mtinformation ,[mbOK] ,0)

end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
......
......
.....
 end;
end.
все получается удачно но потом на этом же браузере смотрю не авторизован
а программа если вводит правилный логин пароль пишет ready а если нет not ready
тогла почему на браузере показывает не авторизованным ?

Заранее всем огромное спасибо

Последний раз редактировалось Stilet; 19.06.2014 в 11:33.
mr_xxx вне форума Ответить с цитированием
Старый 19.06.2014, 10:01   #2
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

mr_xxx, браузер не будет авторизован до тех пор, пока ему не присвоить cookie, которые Вы получаете программно при авторизации.

Цитата:
конкретный выход из этой ситуации
Присвоить cookie браузеру
Lardes вне форума Ответить с цитированием
Старый 19.06.2014, 10:05   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

вот у меня в сарае стоит хамер, а дома я ключом поворачиваю, все прекрасно поворачивается, но почему же хамер не реагирует?
eval вне форума Ответить с цитированием
Старый 19.06.2014, 11:16   #4
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Lardes
Спасибо за ответ
можеш помоч как я могу достать куки и засунуть в браузер ?
mr_xxx вне форума Ответить с цитированием
Старый 19.06.2014, 12:36   #5
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Тебе легче авторизоваться через webbrowser1, нежели через idhttp
bakanaev вне форума Ответить с цитированием
Старый 19.06.2014, 15:24   #6
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

mr_xxx , к IdHTTP1 привязываете IdCookieManager. Это нужно для того, чтобы Вы могли вытащить куки, а после назначить куки для WebBrowser'а. Кодом помочь не смогу
Lardes вне форума Ответить с цитированием
Старый 19.06.2014, 22:37   #7
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Lardes
THANK you
mr_xxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с idhttp.post zarethernet Работа с сетью в Delphi 0 02.02.2012 14:13
Проблема с POST - запросом Lemo C# (си шарп) 7 03.08.2011 13:49
Проблема с Post запросом DKENT Работа с сетью в Delphi 1 16.02.2011 16:34
Проблема с POST [php] Lemo Помощь студентам 3 16.10.2010 20:34
Проблема с post запросом! DKENT Работа с сетью в Delphi 1 12.10.2010 17:28