Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Передача данных скрипту CGI из приложения на C++


Автор: Гость_Hawk 11.10.2004, 21:03
Народ, как из приложения, созданного в C++ Builder передать данные CGI скрипту? Какие компоненты и как для этого можно использовать?

Автор: _hunter 12.10.2004, 10:20
вообще-то это зависит от того, что скрипт хочет получить smile.gif
компонент TIdHTTP
методы Get() / Post()

Автор: Гость_Hawk 12.10.2004, 14:33
Ну например, надо сделать программу с помощью которой можно добавлять запись в гостевую книгу (в качестве примера.)

Страничка с формой добавления на HTML выглядит так:

< form action="http://www.my-site.ru/cgi-sys/guestbook.cgi" target=guestwindow >
< input type="text" name="user" value="uraniac" >
< input type="hidden" name="action" value="addguest" >
< input type="hidden" name="template" value="default" >
Имя: <input type="text" name="name" class="pole" size="28" >
Email: <input type="text" name="email" class="pole" size="28" >
Сайт: <input type="text" name="url" class="pole" size="28" >
Комментарий: < textarea name="comments" cols="40" rows="5" class="area" >
< /textarea >
< input type="submit" value="Отправить" class="button" >
< /form >

Как это реализовать на Билдере? Чтобы пользователь вводил инфу в мемо и эдиты, потом нажал на кнопку и сообщение добавилось?

Автор: _hunter 13.10.2004, 10:39
самую интересную часть ты так и не привел ( а именно метод ) smile.gif
поэтому:
1. метод get
тут все просто
создаем строку запроса вида http://www.my-site.ru/cgi-sys/guestbook.cgi?user=...&action=...&template=......
и выполняем функцию Get()
2. метод post
тут все еще проще smile.gif
береш что-нить типа TStrings ( например TStringList ) и заполняеш его строками вида
user=...
action=...
template=...
...
и выполняеш функцию Post() на адрес http://www.my-site.ru/cgi-sys/guestbook.cgi
все

Автор: Гость_hawk 16.10.2004, 14:04
Спасибо _hunter.. а метод post ... А вообще не подскажешь, где по этому делу есть материал в инете и желательно на русском? smile.gif

Автор: _hunter 16.10.2004, 14:13
незачто

не подскажу smile.gif
( с Indy я по ихнемк Help' y разбирался, а GET / POST -- RFC )

Автор: oi 23.9.2005, 01:10
Последний ответ был давно, но я всё равно спрошу.
У меня проблема с запросом Get, как в WMHTTP так и Indy.

запрос примерно такой get('ccc.cgi','tratata');
Проблема в том, что скрипт ссс.cgi используется со срипта с.cgi и только принимает значения, то есть после выполнения ccc.cgi происходит редирект на скрипт c.cgi .
Мне кажется моя проблемма в этом : Делфи выкидывает ошибку вроде 10053 (что-то с сокетом) после 1 или 2 запроса, при этом данные скрипт таки получает.
Но из-за етой ошибки я не могу использовать запрос Get в цикле.
Может для скриптов, которые редиректят нада как-то особо юзать запрос Get?

Подскажите плз. Спасибо.

Автор: oi 23.9.2005, 01:14
сорри там пример запроса я неправильно написал, у меня так Get ('ccc.cgi?tratata');
Вопрос остаётся в силе

Автор: _hunter 23.9.2005, 10:23
во-первых у TIdHTTP есть HandleRedirects ( если поставить в true он будет автоматом переходить по redirect-ам
во-вторых индейцы не любят переконнектов => если нужно слать несколько запросов -- лучше для каждого создавать свой экземпляр TIdHTTP.

Автор: gfdre@hotmail.com 10.10.2006, 14:21
Very interesting website. Keep up the outstanding work and thank you...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)