Чтение онлайн

ЖАНРЫ

Интернет решения от доктора Боба

Swart Bob

Шрифт:

begin

writeln('Usage: DrBobFTP URL Filename');

writeln('Example: DrBobFTPhc.zip')

end

else

CopyURL(ParamStr(1), ParamStr(2))

end.

Конечно, для выполнения данной программы мы также обязаны иметь WinInet.DLL, которая также может быть найдена на Microsoft web сайте.

3.4. Web Magic

Теперь вы

уже знаете что, мы можем писать мощные Интернет приложения любого сорта с помощью Дельфи. Тем не менее, я как web мастер популярного web сайта, я очень часто чувствую нужду в приложениях поддержки; инструменте который бы мне помог обслуживать мой web сайт. Например, счетчики, гостевые книги, детектор мертвых ссылок, автоматический аплоадер (для публикации новых страниц) и даунлоадер (для автоматического получения файлов с сети).

Поскольку не каждый использует Client/Server версию Delphi 3, мы используем только "голые кости" (bare bones) технологию, такую как мой модуль DrBobCGI или Microsoft WinInet DLL и модули импорта доступные бесплатно.

3.4.1. Счетчик

Счетчик посещений это первое, в чем нуждается популярный web сайт. Меня всегда интересует количество людей посетивших мой сайт. Я всегда заинтересован знать количество людей каждый день. И я всегда заинтересован знать, как выходные и праздники влияют на посещения.

Для отслеживания количества посетителей я просто создан однострочный файл, назвав его "counter", который содержит количество посещений. Единственная вещь, которая нам требуется, это простая CGI программа, которая читает этот файл, увеличивает на единичку и записывает обратно. Конечно, прекрасно при этом показывать посетителю эту информацию или в виде картинки или в виде простого текстового сообщения.

{$APPTYPE CONSOLE}

{$I-}

var

f: Text;

i: Integer;

begin

System.Assign(f,'counter');

reset(f);

if IOResult = 0 then readln(f,i)

else i := 0;

Inc(i);

rewrite(f);

writeln(f,i);

close(f);

if IOResult <> 0 then { skip };

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

writeln;

writeln('<HTML>');

writeln('<BODY>');

writeln('<CENTER>');

writeln('You are user <B>',i,'</B> of Dr.Bob''s Delphi Clinic');

writeln('</CENTER>');

writeln('</BODY>');

writeln('</HTML>')

end.

Вышеприведенная программа показывает текущее значение в виде текстового сообщения, которое выводится в отдельном фрейме:

<HTML>

<FRAMESET ROWS="64,*">

<FRAME SRC=http://www.drbob42.com/cgi-bin/hitcount.exe? NAME="Head">

<FRAME SRC="guest.htm"NAME="Main">

</FRAMESET>

</HTML>

Это

очень простое CGI приложение. Оно даже не получает ввода, просто преобразовывает удаленный файл на web сервере и возвращает динамическую страницу. Позвольте теперь сделать фокус на более сложном CGI приложении – таком которое требует ввода данных – например гостевой книге.

3.4.2. Гостевая книга

Подлинный CGI пример: приложение – гостевая книга (в котором спрашиваем имя и небольшой комментарий), всего лишь несколько строк на Дельфи.

Сначала CGI форма:

<HTML>

<BODY>

<H2>Dr.Bob's Guestbook</H2>

<FORM ACTION="http://www.drbob42.com/cgi-bin/guest.exe" METHOD=POST

Name: <INPUT TYPE=text NAME=name<BR>

Comments: <TEXTAREA COLS=42 LINES=4 NAME=comments>

<INPUT TYPE=SUBMIT VALUE="Send Comments to Dr.Bob">

</FORM>

</BODY>

</HTML>

Теперь консольное (Дельфи) приложение:

program CGI;

{$I-}

{$APPTYPE CONSOLE}

uses

DrBobCGI;

var

guest: Text;

Str: String;

begin

Assign(guest,'guest'); // assuming that's the guestbook

Append(guest);

if IOResult <> 0 then // open new guestbook

begin

Rewrite(guest);

writeln(guest,'<HTML');

writeln(guest,'<BODY')

end;

writeln(guest,'Date: ',DateTimeToStr(Now),'<BR');

writeln(guest,'Name: ',Value('name'),'<BR');

writeln(guest,'Comments: ',Value('comments'),'<HR');

reset(guest);

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

writeln;

while not eof(guest) do // now output guestbook itself

begin

Поделиться с друзьями: