| 
 Урок 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] 
[приложение Б] 
[приложение В] 
[заключение] 
[благодарности] 
 
  |