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

Спецвыпуск хакер, номер #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

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001