На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> Как программно можно заполнить форму
    Меня интересует вопрос как можно программно заполнить форму и содержымое отослать? какие нужны компоненты? и как это примерно делается? <_<
      Цитата cha0s @
      Меня интересует вопрос как можно программно заполнить форму и содержымое отослать?


      Для начала нужно выясниить для себя, что это означает - "заполнить форму и отослать". Для этого можно почитать материал здесь, например - http://postroika.ru/html/47step2.html

      Цитата cha0s @
      какие нужны компоненты?


      Для отправки данных(запроса) на сервер можно воспользоваться любыми компонентами, основанными на сокетах. Проще всего - компонент IdHTTP из комплекта Indy, инкапсулирующего работу по протоколу HTTP.

      Цитата cha0s @
      и как это примерно делается?


      IdHttp1.Get(<Адрес URL>), например
      Сообщение отредактировано: Демо -
        не много разобрался, а как будет выгледить запрос если на форме метод post? есль проги которые показывают все запросы в сыром виде?
          Рассмотрим метод GET:

          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>


          Если нам нужно отправить значения 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;
            Спасибо с этим разобрался но появилась новая проблема при отсылке запроса серверу выскакивает исключение 'HTTP/1.0 302 Moved Temporarily' как с этим быть? :D
              Вот направление:
              idHTTP просмотреть HTML код :-(((
              http://www.delphimaster.ru/cgi-bin/forum.pl?id=1133169129&n=4
                Демо спасибо разобрался ;)
                  Предлагаю добавить статью в 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: 2,2321 ]   [ 16 queries used ]   [ Generated: 28.04.24, 15:16 GMT ]