Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Программирование CGI в Delphi и Kylix (статья)

01.01.2007

Автор: Paul TOTH

Перевод с французского: Valery Votintsev

Взято из https://forum.sources.ru

Содержание:

·Введение
·Передача параметров
·Переадресация
·Вывод изображений
·Защита паролем
·Куки (Cookies)
·Работа с Базами Данных
·Частые Вопросы и Ответы

Введение

В настоящем руководстве объясняется, как программировать CGI на Delphi и Kylix.

Автор будет рад Вашим замечаниям и пожеланиям!

Уточнения:

Для работы с CGI вам потребуется Web-сервер (для Delphi - под Windows, а для Kylix - под Linux)...

Автор тестировал свои программы на сервере Lotus Domino под NT, и на сервере Apache под Mandrake 7.0 (linux).

Автор использовал Delphi 2.0, однако это руководство применимо и для Delphi 3,4,5, 6... и Kylix !

Примечание:

Если вы планируете использовать ISAPI/NSAPI DLL, то лучше будет программировать на Delphi 5/6; однако настоящее руководство остается весьма полезным, если Вы желаете разобраться в том, как функционирует CGI.

Основные понятия

Ссылки на CGI-программу:

На HTML-странице (или непосредственно в строке URL браузера) вы помещаете ссылку на вашу программу. Вот несколько примеров ссылок:

Простая ссылка:        <a href="/cgi-bin/program.exe">        

Запрос вывода изображения:        <img src="/cgi-bin/program.exe">        

Форма с запросом типа GET:        <form method=GET action="/cgi-bin/program.exe"> ... </form>        

Форма с запросом типа POST:        <form method=POST action="/cgi-bin/program.exe"> ... </form>        

Прямое обращение по URL:        http://www.tonserver.fr/cgi-bin/program.exe        

Что такое cgi-bin:

cgi-bin - это псевдоним каталога на сервере, который указывает на реальный каталог, в котором размещены все CGI программы.

Например:

Под Windows:        c:\internet\delphi\cgi        

Под Linux:        /home/httpd/cgi-bin        

Запуск CGI-программ:

Когда пользователь кликает на ссылке, указывающей на CGI-программу, сервер запускает данную программу и ожидает от нее ответа.

Ответ CGI-программы:

Самым простым вариантом CGI программы может служить консольное приложение {$apptype console}, которое похоже на DOS-программу, однако работает под Windows 95/NT, или под Linux.

Эта возможность позволяет тестировать CGI-программу локально, выводя результат работу на экран.

 

Пример простейшей CGI-программы:

Program ExampleCGI; 
 
{$apptype console}
 
begin
 WriteLn('Content-type: text/html');
 WriteLn;
 WriteLn('Всем привет !');
end.
 

Разберем строки, выводимые программой:

 

1) WriteLn('Content-type: text/html'); - Content-type - это описание типа выводимых данных (в данном случае - текста HTML)

2) WriteLn; - Вывод пустой строки ОБЯЗАТЕЛЕН, для того, чтобы отделить "заголовок" документа от выводимого далее содержимого этого документа.

3) WriteLn('Всем привет !'); - Здесь выводится собственно тело документа, т.е. то, что мы увидим, если нажмем в браузере "Файл - Просмотр в виде HTML"

 

Для обращения к программе в строке адреса в браузере необходимо набрать:

 

http://ваш_сервер/cgi-bin/ExampleCGI

 

Использование Writeln:

 

Все, что выводится командой WRITELN, направляется в "устройство стандартного вывода" STDOUT и отправляется сервером в браузер пользователя.

 

Интересно, что под Windows можно написать CGI-программу даже с помощью .BAT-файла!

 

@ECHO OFF

ECHO content-type: text/html

ECHO.

ECHO ^<HTML^>^<HEAD^>^<TITLE^>^</TITLE^>^</HEAD^>^<BODY^>

ECHO Всем привет !

ECHO ^</BODY^>^</HTML^>

 

Обратите внимание, что специальные символы, используемые в DOS (такие, как "<", ">", "&",...), необходимо предварять знаком "^".

 

Не забывайте об этом при написании CGI с .BAT файлами...

 

Программирование CGI в Delphi и Kylix (статья)