Вернуться на сайт гостевой книги Power Perl Educaton Help Download Links Off-line version

Урок 16. коротко о SSI

Предлагаю немного отдохнуть от Perl и ознакомиться с технологией "Server Side Includes" (включения на стороне сервера), в просторечии SSI. SSI Позволяет без лишних хлопот динамически создавать HTML файлы методом вставок. Большинство серверов поддерживают SSI.

Чтобы внутри HTML файла разместить содержание другого файл, нужно в том месте, куда предполагается вставка, поместить HTML тэг очень похожий на комментарий:

<!--#include virtual="file.ssi" -->

И действительно, если сервер не поддерживает SSI, он не сможет подставить вместо этой строки содержимое файла file.ssi и передаст код браузеру. Браузер воспримет его как комментарий и ничего не отобразит на своем экране.

Хотя с помощью директивы "include virtual" можно вставлять не только статичные документы (html, txt, read.me), но и динамические (perl-скрипты, к примеру), для последних придумана специальная директива - "exec cgi".

Зачем же нам, CGI-программистам, нужна технология SSI? Ответ напрашивается сам собой - для удобства написания Perl-скриптов ( |-D ) . Ведь мы часто в своих скриптах используем статичную информацию, к примеру выводим формы и другие части HTML страницы. Использование SSI позволяет оставлять всю статичную информацию в HTML странице, а динамические только включать в неё. Таким образом в браузер мы будем загружать уже не результат выполнения CGI скрипта, а HTML страницу со включеным результатом.

Ускоренный курс изучения CGI программирования не предполагает глубокого изучения SSI, поэтому на приведенном выше материале мы и остановимся. Более детальный материал по SSI можно найти в разделе помощи.

* * * *

Напишем простейший счетчик посещений с использованием технологии SSI

#!/usr/local/bin/perl
# programm 16
print "Content-Type: text/html \n\n";

$file="counter.txt";
open(FILE,"$file");
$line=<FILE>;
close(FILE);
open(FILE,">$file");
$line++;
print FILE "$line";
close FILE;
print "$line"

Сохраните этот скрипт в файл под именем "counter.pl".
В директории с HTML файлами создайте файл "usualy.htm", в котором содержались бы такие строчки:

<html><head>
<title></title>
</head>
<body>
<p>Общее количество посещений: <!--#exec cgi="/cgi-bin/counter.pl" --></p>
</body>
</html>

Теперь попробуйте загрузить и несколько раз обновить страницу. Вы должны увидеть, что значение каждый раз увеличивается на единицу.
Если это так, то я Вас поздравляю, Вы только что написали счетчик посещений для своего сайта!

* * * *

  • Можно ли вызывать Perl-скрипты с помощью директивы "include virtual" ?
  • Какая из этих директив поддерживает вызов CGI скриптов с передачей им параметров методом GET -"exec cgi" или "include virtual"?

Предусмотрите защиту файла counter.txt от ошибок ввода-вывода. Введите переменную, от значений которой будет зависеть использовать или нет функцию flock.

Дополнительная информация: [коротко о SSI] [подробно о SSI]

[Содержание]  [Вступление]  [необходимое для начала изучения]  [урок 1]  [урок 2]  [урок 3]  [урок 4]  [урок 5]  [урок 6]  [урок 7]  [урок 8]  [урок 9]  [урок 10]  [урок 11]  [урок 12]  [урок 13]  [урок 14]  [урок 15]  [урок 16]  [урок 17]  [урок 18]  [урок 19]  [урок 20]  [урок 21]  [урок 22]  [урок 23]  [урок 24]  [урок 25]  [урок 26]  [урок 27]  [урок 28]  [правила хорошего тона]  [приложение A]  [приложение Б]  [приложение В]  [заключение]  [благодарности] 


107628

89
15

HOLMS.ru Counter -эфхъё ЎшЄшЁютрэш  Counter CO.KZ


Copyright © ClericICN, 2002 - 2003