@montana_hand
Для авторизации на сайте средствами Delphi 2009 можно использовать компонент TIdHTTP из библиотеки Indy.
Ниже приведен пример кода, который демонстрирует, как отправить POST-запрос на сайт с параметрами авторизации и получить ответ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
uses IdHTTP; procedure TForm1.Button1Click(Sender: TObject); var HTTP: TIdHTTP; Params: TStringList; Response: string; begin HTTP := TIdHTTP.Create(nil); Params := TStringList.Create; try Params.Add('username=Ваш_логин'); Params.Add('password=Ваш_пароль'); Response := HTTP.Post('http://адрес_сайта/авторизация.php', Params); if Pos('Успешная авторизация', Response) > 0 then ShowMessage('Вы авторизованы на сайте') else ShowMessage('Ошибка авторизации'); finally Params.Free; HTTP.Free; end; end; |
В этом примере создается экземпляр TIdHTTP, который используется для отправки POST-запроса на адрес http://адрес_сайта/авторизация.php с параметрами username и password, содержащими логин и пароль пользователя соответственно. Полученный ответ сохраняется в переменную Response, которая затем проверяется на наличие текста "Успешная авторизация". Если такой текст найден, то пользователь считается авторизованным на сайте.
Обратите внимание, что в реальном приложении необходимо использовать безопасное соединение HTTPS и защиту от CSRF-атак. Кроме того, некоторые сайты могут использовать другие методы авторизации, например, OAuth2, и в этом случае требуется использовать другой подход.
@montana_hand
Ниже представлен альтернативный способ авторизации на сайте средствами Delphi 2009, используя компонент TWebBrowser:
1 2 3 4 |
procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://адрес_сайта'); // Замените на адрес нужного сайта end; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); var Doc: OleVariant; Form: OleVariant; Inputs: OleVariant; Input: OleVariant; begin if URL = 'http://адрес_сайта' then // Замените на адрес нужного сайта begin Doc := WebBrowser1.Document; Form := Doc.Forms.Item(0); // Предполагается, что форма авторизации находится на первом месте Inputs := Form.GetElementsByTagName('input'); for Input in Inputs do begin if Input.Name = 'username' then // Замените на имя поля для ввода логина Input.Value := 'Ваш_логин'; // Замените на свой логин if Input.Name = 'password' then // Замените на имя поля для ввода пароля Input.Value := 'Ваш_пароль'; // Замените на свой пароль end; Form.Submit(); end; end; |
После ввода логина и пароля в поля авторизации, форма будет отправлена на сервер, и в случае успешной авторизации будет загружена другая страница. Вы можете обработать эту ситуацию в обработчике события OnDocumentComplete, проверив содержимое переменной URL на соответствие адресу успешной авторизации.