Страница 5 из 8 Практическое использование SSI Первым распространенным применением SSI является внедрение в документ некоего динамического куска разметки. Хрестоматийными примерами могут служить счетчики посещений, цитаты или баннеры рекламных сетей. В любом случае, будь то строка текста или целая таблица, вставка производится с помощью директивы include, помещаемой в то место, куда должен быть вставлен кусок разметки: <html> <body> <p>Документ с баннером внизу страницы</p> <!--#include virtual="/cgi-bin/ibanner.pl?webclub" --> </body> </html> Программа или сценарий CGI, вставляемая с помощью SSI, ничем не отличается от стандартной CGI программы, за исключением того, что должен выдаваться не целый документ, а только кусок разметки. Вот текст упомянутого выше сценария: #!/usr/local/bin/perl $login=$ENV{"QUERY_STRING"}; print "Content-type: text/html\n\n"; ($IP)=($ENV{"REMOTE_ADDR"}=~s/\.//g); srand($$+$IP+time); $seed=int rand(10000000); print "<a xhref=\"https://www.reklama.ru/cgi-bin/href/$login?$seed\">\n"; print "<img xsrc=\"https://www.reklama.ru/cgi-bin/banner/$login?$seed\" width=468 height=60 border=0>\n"; print "</a>\n"; Как видно из примера даже во включаемых сценариях необходимо выводить HTTP заголовок. В результате сканирования нашего простейшего документа пользователю будет возвращен примерно (с точностью до случайной величины) следующий документ: <html> <body> <p>Документ с баннером внизу страницы</p> <a xhref="https://www.reklama.ru/cgi-bin/href/webclub?348593"> <img xsrc="https://www.reklama.ru/cgi-bin/banner/webclub?348593" width=468 height=60 border=0> </a> </body> </html> Вторым распространенным применением SSI является формирование страницы из шаблона. В простейшем случае - это документ в начало и конец которого вставляются шапка и концевик <html> <head> <title>Test Page</title> </head> <!--#include virtual="/ssi/header.html" --> <h1>Тестовая страница</h1> <p>Некий текст</p> <!--#include virtual="/ssi/global_menu.html" --> <!--#include virtual="/ssi/footer.html" --> </body> </html> Вставляемые блоки не обязательно должны быть законченными, например, header.html может заканчиваться тэгом <td>, а global_menu.html или footer.html начинаться с тэга </td>. Таким образом, какими бы навороченными не были шапка и концевик документа, редактируемый документ выглядит чрезвычайно просто, и его легко редактировать. Только используя SSI вы можете в считанные минуты полностью изменить внешний вид или обновить систему навигации на узле, имеющем сотни или тысячи документов, и так, что это пройдет безболезненно для пользователей узла, т.к. вам только потребуется заменить несколько файлов, а остальное за вас сделает сервер. В связи со всем вышесказанным рождается одно правило: желательно смысловую часть документа строить так, чтобы она никак не полагалась на содержимое шапок и концевиков. В этом случае вы легко сможете перейти с табличной организации страниц на последовательную или на слоевую. |