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

Тут можно читать онлайн Bob Swart - Интернет решения от доктора Боба - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Интернет решения от доктора Боба
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.89/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Bob Swart - Интернет решения от доктора Боба краткое содержание

Интернет решения от доктора Боба - описание и краткое содержание, автор Bob Swart, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Интернет решения от доктора Боба - читать онлайн бесплатно полную версию (весь текст целиком)

Интернет решения от доктора Боба - читать книгу онлайн бесплатно, автор Bob Swart
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Поскольку не каждый использует 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);

ifIOResult = 0 thenreadln(f,i)

elsei := 0;

Inc(i);

rewrite(f);

writeln(f,i);

close(f);

ifIOResult <> 0 then{ skip };

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

writeln;

writeln('');

writeln('

');

writeln('

');

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

writeln('

');

writeln('

');

writeln('

')

end.

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

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

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

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

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

Dr.Bob's Guestbook

Name:

Comments:

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

programCGI;

{$I-}

{$APPTYPE CONSOLE}

uses

DrBobCGI;

var

guest: Text;

Str: String;

begin

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

Append(guest);

ifIOResult <> 0 then// open new guestbook

begin

Rewrite(guest);

writeln(guest,'

writeln(guest,'

end;

writeln(guest,'Date: ',DateTimeToStr(Now),'

writeln(guest,'Name: ',Value('name'),'

writeln(guest,'Comments: ',Value('comments'),'


reset(guest);

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

writeln;

while noteof(guest) do// now output guestbook itself

begin

readln(guest,Str);

writeln(Str)

end;

close(guest);

writeln('

writeln('

end.

Примечание, для того, что бы упростить, мы не используем базу данных для хранения комментариев. Иначе это потребовало установки BDE на web сервере.

3.4.3. Детектор мертвых ссылок

Любой серьезный web сайт и его web мастер должны всегда следить за актуальность ссылок. И если обнаружится мертвая ссылка (например другой web сайт прекратил существование), но нет никаких оправданий для внутренних мертвых ссылок. И поэтому я написал простую программу, назвав ее HTMLINKS, которая может сканировать .HTM файлы на их присутствие на локальной машине. (что бы потом загрузить их на сервер). HTM файлы из текущего каталога и всех подкаталогов рекурсивно читаются и проверяются на тег "

Заметим, что программа игнорирует все "file://", "ftp://", "mailto:", "news:" and ".exe?" значения если они встретятся внутри "HREF" части. Конечно, вы свободны в расширить HTMLINKS для проверки и этих случаев, можно также реализовать проверку и внешних ссылок. Для информации я написал и детектор внешних мертвых ссылок в статье для The Delphi Magazine, подробности можно найти на моем web сайте. Для анализа мертвых локальных ссылок код следующий:

{$APPTYPE CONSOLE}

{$I-,H+}

uses

SysUtils;

var

Path: String;

procedureCheckHTML( constPath: String);

var

SRec: TSearchRec;

Str: String;

f: Text;

begin

ifFindFirst('*.htm', faArchive, SRec) = 0 then

repeat

Assign(f,SRec. Name);

Reset(f);

ifIOResult = 0 then{ no error }

while noteof(f) do

begin

readln(f,Str);

while(Pos('do

begin

ifPos('

else

Delete(Str,1,Pos('FRAME SRC="',Str)+10);

if(Pos('#',Str) <> 1) and

(Pos('http://',Str) <> 1) and

(Pos('mailto:',Str) <> 1) and

(Pos('news:',Str) <> 1) and

(Pos('ftp://',Str) <> 1) and

(Pos('.exe?',Str) = 0) then{ skip external links & exe }

begin

ifPos('file:///',Str) = 1 thenDelete(Str,1,8);

if(Pos('#',Str) 0) and

(Pos('#',Str) < Pos('"',Str)) thenStr[Pos('#',Str)] := '"';

if notFileExists(Copy(Str,1,Pos('"',Str)-1)) then

writeln(Path,'\',SRec.Name,': [',Copy(Str,1,Pos('"',Str)-1),']')

end

end

end;

Close(f);

ifIOResult <> 0 then{ skip }

untilFindNext(SRec) <> 0;

FindClose(SRec);

// check sub-directories recursively

ifFindFirst('*.*', faDirectory, SRec) = 0 then

repeat

if((SRec.Attr ANDfaDirectory) = faDirectory) and

(SRec. Name[1] <> '.') then

begin

ChDir(SRec. Name);

CheckHTML(Path+'\'+SRec. Name);

ChDir('..')

end

untilFindNext(SRec) <> 0;

FindClose(SRec)

end{CheckHTML};

begin

writeln('HTMLinks 4.0 (c) 1997-2000 by Bob Swart (aka Dr.Bob - www.drbob42.com)');

writeln;

FileMode := $40;

GetDir(0,Path);

CheckHTML(Path)

end.

3.4.4. FTP Upload/Download

Иногда вам просто нужно загружать файлы из Интернета. В терминах Интернета, это означает, что вам нужно использовать FTP клиента. И если вы не желаете, подобно мне использовать настоящего FTP клиента, то просто напишите, как и я своего собственного клиента…

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Bob Swart читать все книги автора по порядку

Bob Swart - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Интернет решения от доктора Боба, автор: Bob Swart. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x