В данной теме я постараюсь как можно подробнее рассказать о авторизации в Delphi.
Мы будем использовать стандартную библиотеку: [Indy]
Для работы нам понадобятся:
- Delphi любой версии.
- Стандартная библиотека Indy[имеется в закладкаx].
- Желание учиться.
Создаем Новую Форму:
Цитата:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Цитата:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Кидаем 1 кнопку, 2 едита на форму:
Цитата:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Делаем двойной клик по кнопке(создаем таким образом обрабочик события нажатия на кнопку):
Цитата:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Итак, мы закончили подготовку. Теперь немного информации.
Цитата:
Способ отправки параметров напрямую зависит от библиотеки которую Вы выбрали.
В этой теме я расскажу об Инди.
Для передачи параметров вышеупомянутая библиотека использует TStringList.
Приступим к написанию кода.
- Для начала нам нужно объявить и динамически создать объект класса.
Цитата:
procedure TForm5.sButton1Click(Sender: TObject);
var
HTTP: TIdHTTP;
begin
HTTP := TIdHTTP.Create(nil);
end;
Теперь я поясню что я сделал.
- Объявил переменную, которая является объектом класса TIdHTTP;
- Динамически создал объект TIdHTTP с нулевым указателем (nil) на родителя
Теперь наша задача состоит в добавлении параметров.
Цитата:
procedure TForm5.sButton1Click(Sender: TObject);
var
HTTP: TIdHTTP;
PostData: TStringList;
begin
HTTP := TIdHTTP.Create(nil);
PostData := TStringList.Create;
PostData.Add('Login='+sedit1.text);
PostData.Add('Password='+sedit2.text);
end;
Поясню что я написал.
- Создал объект класса TStringList.
- Добавил туда строки с параметрами (их достают с помощью сниффера, чаще всего используют Charles, HTTP Analyzer)
Осталось отправить запрос на авторизацию и сверить ответ.
- Для отправки параметров используется функция Post(класс TIdHTTP)
- Результат выполнения функции присваиваем какой-то переменной строкового типа.
- Проверяем, есть ли какой-то текст, который отображается только авторизованным(например кнопка "Выход")
Цитата:
procedure TForm5.sButton1Click(Sender: TObject);
var
HTTP: TIdHTTP;
PostData: TStringList;
Pagedata: String;
begin
HTTP := TIdHTTP.Create(nil);
PostData := TStringList.Create;
PostData.Add('Login='+sedit1.text);
PostData.Add('Password='+sedit2.text);
Pagedata := HTTP.Post('http://good-programm.ru',Data);
if Pos('logout',pagedata)<>0 then
ShowMessage('Вы успешно авторизовались на сайте Good-Programm.ru')
else ShowMessage('Что-то не так...');
end;
Наконец-то осталось немного
- Освободить память от объекта TIdНТТР.
- Освободить память от объекта TStringList.
- Отблагодарить автора
Цитата:
procedure TForm5.sButton1Click(Sender: TObject);
var
HTTP: TIdHTTP;
PostData: TStringList;
Pagedata: String;
begin
HTTP := TIdHTTP.Create(nil);
PostData := TStringList.Create;
PostData.Add('Login='+sedit1.text);
PostData.Add('Password='+sedit2.text);
Pagedata := HTTP.Post('http://good-programm.ru',Data);
if Pos('logout',pagedata)<>0 then
ShowMessage('Вы успешно авторизовались на сайте Good-Programm.ru')
else ShowMessage('Что-то не так...');
HTTP.Free;
PostData.Free;
end;
Если у Вас возникла ошибка:
- Добавьте в Uses IdHTTP;
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вопросы:
- Данный мануал был сделан сайтом [Ссылки могут видеть только зарегистрированные пользователи. ]
- Копирование текста без подписи на наш сайт запрещено!
[Ссылки могут видеть только зарегистрированные пользователи. ]
- Все вопросы задавайте мне в Skype: Flayer-Soft
Последний раз редактировалось VeTaL_UA; 01.11.2013 в 16:14.