На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Rouse_, jack128, Krid
  
    > Как программно можно заполнить форму
      Предлагаю добавить статью в FAQ:

      Вопрос: Как заполнить форму и отправить на сервер?

      Для того, чтобы отправить форму на сервер, необходимо:

      1. Найти форму в исходном тексте страницы.
      Для этога найти в исходном тексте страницы теги <form>...</form>

      Например:

      ExpandedWrap disabled
        <form method=GET action=http://localhost/cgi-bin/mget?>
        <input type=text name=name1 value="имя" size="40" maxlength="20"><br>
        <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br>
        <input type=submit>
        </form>


      2. Определить метод, который используется для отправки данных. В указанном выше примере это "GET" - form method=GET

      3. Найти поля, которые необходимо заполнить.

      В примере это:

      ExpandedWrap disabled
        <input type=text name=name1 value="имя" size="40" maxlength="20"><br>
        <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br>


      4. Используя компоненты для работы с протоколом TCP/IP, сформировать строку запроса.
      Для определенности пусть это будет компонент TIdHTTP из пакета Indy, входящий в стандартный набор компонент Delphi.
      --------------

      Сформируем строку для отправки на сервер для нашего примера:

      Пусть нам нужно отправить значениядля полей: имя=Vasya, фамилия=Pupkin.

      В этом случае запрос будет выглядеть так:

      ExpandedWrap disabled
        var
          s: String;
        begin
          s := IdHTTP1.Get('http://localhost/cgi-bin/mget?name1=Vasya&name2=Pupkin')

      --------------

      В случае, если форма использует метод POST:

      ExpandedWrap disabled
        <form method=POST action=http://localhost/cgi-bin/mget?>
        <input type=text name=name1 value="имя" size="40" maxlength="20"><br>
        <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br>
        <input type=submit>
        </form>


      формируем запрос для отправки несколько по-другому:

      ExpandedWrap disabled
        var
          tL: TStringList;
          s: String;
        begin
          tL := TStringList.Create;
          tL.Add('name1=Vasya');
          tL.Add('name2=Pupkin');
          try
            s := IdHTTP1.Post('http://localhost/cgi-bin/mget',tL);
          finally
            tL.Free;
          end;

      ------------------
      Ключевые слова: TIdHTTP, GET, POST
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0203 ]   [ 17 queries used ]   [ Generated: 28.03.24, 23:40 GMT ]