ЖУРНАЛ ХАКЕР

Сайт по кирпичикам

Спецвыпуск хакер, номер #002, стр. 002-042-4


Может быть полезна для удаленного контроля размера лога или еще для каких целей.

Flastmod. Эта команда позволяет включить в документ дату последней модификации любого доступного файла.

Пример: <!--#flastmod virtual="mysuperfile.htm"-->.

В отличие от echo-команды, команда Flastmod скажет "всю правду" о любом интересующем файле!

Очень хороший способ для начальников контролировать их нерадивых подчиненных (шучу). Но на самом деле очень удобно - делаешь себе одну страничку, где идет список всех файлов, и после обновлений на сайте смотришь - не перепутал ли чего. :) Оно ведь всяко может быть.

Break. Как легко понять из имени команды, она занимается прерыванием. :) Эта команда, как только она встречается, немедленно и безусловно останавливает дальнейший вывод документа.

Пример: <!--#break -->.

Чрезвычайно проста в использовании и не менее чрезвычайно полезна при отладке важных страниц. Я думаю, ни у кого не возникает сомнений, что страницу на гипертексте тоже можно (и нужно!) отлаживать.

Безусловно, это не все тэги, доступные в синтаксисе SSI. К примеру, за скобками остались такие команды, как exec (позволяет выполнять внешние программы и cgi-скрипты), или сonfig (изменяет вывод таких, к примеру, команд, как fsize, flastmod, позволяя настроить нужный формат выдачи сообщений.

Немного программирования

Конечно, в SSI кое-что есть от программирования. Но все же большинство команд - статичны. Тем не менее, для тех, кто хочет делать по-настоящему динамически изменяемые страницы, придутся по душе несколько "чисто программистских" операторов, содержащихся в SSI.

Из всех операторов программирования самым важным для нас, безусловно, является оператор IF. В SSI тег IF позволяет осуществлять вывод определенного текста в зависимости от условий.

В общем виде синтаксис команды выглядит так:

if' "<operand1>" <operator> "<operand2>" <operation>.

На месте последней команды "operation" может быть один из операторов: 'goto', 'print', 'error', 'break', 'errorbreak' или 'printbreak'.

Очень простой пример - допустим, нужно показывать что-то использующим определенный браузер и не показывать это остальным - не хрена им не в свое дело лезть.

Пишем:

<!--#if "&&HTTP_USER_AGENT&&" hasstring "Mozilla" goto Mozilllalabel-->

<P>Ты, пацан попал, у тебя неправильный браузер, и здесь ты ничего не увидишь

<!--#goto ="defaultlabel" -->

<!--#label ="Mozilllabel" -->

<P>А ты пацан клевый, и мне очень нравится твой браузер :).

<!--#label ="defaultlabel" -->

(Здесь уже можно ничего не писать). :)

Все просто, просто до безобразия.

Можно использовать IF для того, чтобы сравнивать текст в формах. Т.е. можно проверить идентичность заполнения форм (а вдруг человек ошибся) или напоминать гостю, что какую-то позицию формы он не заполнил. Вежливо и элементарно. :)

В примере выше я использовал два стандартных оператора - goto и label. Надо "осветить" их чуть более подробно.

Goto. Используется в связке с меткой label (см. ниже).

Синтаксис команды: <!--#goto ="<label>"-->

Пример. <!--#goto ="secretlabel" -->

Назад на стр. 002-042-3  Содержание  Вперед на стр. 002-042-5