Вход/Регистрация
Интернет решения от доктора Боба
вернуться

Swart Bob

Шрифт:

1.3.4. Динамический вывод

Для начала посмотрим на стандартное "hello world" CGI приложение. Единственное, что оно должно сделать, это вернуть HTML страницу со строкой "hello, world". Перед тем как мы начнем делать это – обратим внимание на следующее: CGI приложение должно сообщить миру какой (MIME) формат оно выдает. В нашем случае это "text/html", которое мы должны указать как: content-type: text/html , и затем одну пустую строку.

Вот код нашего первого "Hello, world!" CGI приложения:

 program CGI1;

 {$APPTYPE CONSOLE}

 begin

writeln('content-type: text/html');

writeln;

writeln('<HTML');

writeln('<BODY');

writeln('Hello, world!');

writeln('</BODY');

writeln('</HTML')

 end.

Если вы откомпилируете данную программу в Дельфи 2 или 3 и затем запустите ее из web браузера подключенного к web серверу, где оно записано в исполнимом виде в исполняемом каталоге таком как cgi-bin, то вы увидите текст "Hello, world!" на странице.

1.3.5. CGI ввод

Теперь, мы знаем как создавать CGI приложение, которое может генерировать динамическую HTML страницу (или в действительности почти статическую). Но как насчет ввода? Здесь более чем одно действие: мы должны проверять переменную DOS 'CONTENT LENGTH' что бы знать как много символов мы можем прочитать со стандартного ввода (если мы попытаемся читать больше чем есть, то мы повиснем навсегда). Конечно, это широко известный факт. Я написал компонент TBDosEnvironment чтобы вы могли иметь доступ до переменных среды DOS:

 unit DrBobDOS;

 interface

 uses

SysUtils, WinTypes, WinProcs, Classes;

 type

TBDosEnvironment = class(TComponent)

public

{ Public class declarations (override) }

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

private

{ Private field declarations }

FDosEnvList: TStringList;

procedure DoNothing(const Value: TStringList);

protected

{ Protected method declarations }

Dummy: Word;

function GetDosEnvCount: Word;

public

{ Public interface declarations }

function GetDosEnvStr(const Name: String): String;

{ This function is a modified version of the GetEnvVar function thatappears in the WinDos unit that comes with Delphi. This function's interface uses Pascal strings instead of null-terminated strings.

}

published

{ Published design declarations }

property DosEnvCount: Word read GetDosEnvCount write Dummy;

property DosEnvList: TStringList read FDosEnvList write DoNothing;

end;

 implementation

constructor TBDosEnvironment.Create(AOwner: TComponent);

var

P: PChar;

begin

inherited Create(AOwner);

FDosEnvList := TStringList.Create;

{$IFDEF WIN32}

P := GetEnvironmentStrings;

  • Читать дальше
  • 1
  • ...
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: