Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Написание CGI-приложения посредством Delphi


Интернетчик ©   (2004-06-03 02:38:00) 

Мне необходимо создать CGI-приложение именно на Delphi, а не на Perl, например. Причина в том, что я использую функции сжатия, шифрования данных, и это у меня написано и работает на Delphi, Надо, чтобы программа работала в качестве полноценного CGI скрипта... Например, мне присылают (POSTом) данные, мне нужно их обработать, как в простой прорамму, и сгенерировать ответ. И также важно, чтобы это дело не весило пол
мегабайта из-за форм.
Подскажите, пожалуйста...


piople   (2004-06-03 04:32:00) [1]

Так в чем проблема то??? Работай с cgi скриптом по средством консольного приложения!
Хотя честно говоря лучше всего их писать в виде библиотек ISAPI или NSAPI.
Но раз надо малый размер, то пиши консольное приложение.

Пример:
Моя библиотека для работы с общим шлюзовым интерфейсом(CGI):

unit cgiwork;

interface
uses SysUtils, Windows;

function HexToInt(CH : char): integer;
function Decode(Value: string; CH: String): string;
function ParamByName(Name: string; CH: String): string;
function LowCase(ch: Char) : Char;
function ChangeChar(Value, CHOld, CHNew: String): string;
function GetEV(Param: String): String;

implementation

// Полечение переменной сетового окружения
function GetEV(Param: String): String;
begin
result := GetEnvironmentVariable(PChar(Param));
end;

// Функция замены символов в строке
function ChangeChar(Value, CHOld, CHNew: String): string;
begin
 while Pos(CHOLD, Value) > 0 do
   Value := Copy(Value,0,Pos(CHOld, Value)-1) + CHNew + Copy(Value,Pos(CHOld, Value) + Length(CHOld),Length(Value));

 result := Value;
end;

// Переделываем буквы в нижний регистр
function LowCase(ch: Char): Char;
begin
 Result := ch;
 case Result of
 'А'..'Я':  Dec(Result, Ord('А') - Ord('а'));
 'A'..'Z':  Dec(Result, Ord('A') - Ord('a'));
 end;
end;

// Переделываем из Hex в Int
function HexToInt(CH : char): integer;
begin
 Result:=0;
 case CH of
   '0'..'9': Result:=Ord(CH)-Ord('0');
   'A'..'F': Result:=Ord(CH)-Ord('A')+10;
   'a'..'f': Result:=Ord(CH)-Ord('a')+10;
 end;
end;

// Декодировать параметр
function Decode(Value: string; CH: String): string;
var
 i, L: integer;
begin
 Result:='';
 L:=0;

 Value := ChangeChar(Value, '%0D%0A', ' ');

 for i := 1 to Length(Value) do
 begin
   if(Value[i] '%') and (Value[i] '+') and (L


Наверх

Титульная страница Поиск, карта сайта Написать письмо