Урок 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", в котором содержались бы такие строчки:
Общее количество посещений: <!--#exec cgi="/cgi-bin/counter.pl" -->
Теперь попробуйте загрузить и несколько раз обновить страницу. Вы должны увидеть, что значение каждый раз увеличивается на единицу. Если это так, то я Вас поздравляю, Вы только что написали счетчик посещений для своего сайта!
* * * *
- Можно ли вызывать 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]
[приложение Б]
[приложение В]
[заключение]
[благодарности]
|