Server Side Includes (SSI)

═════ SSI значительно расширяет Ваши возможности, позволяя динамически вставлять, документы или результаты работы CGI в произвольные места запрошенного документа.
═════ Когда удаленный пользователь запрашивает у Вас файл имеющий расширение *.SHT, *.SHTM, *.SHTML сервер отдает его с учетом встречающихся в нем SSI тегов.
════ SSI тег имеет следующий формат:
<!--#имя_тега {переменная="значение" } -->
═════ Внутри "значения" могут применятся подстановки HTTP переменных или переменных полей формы запроса. Имя переменной начинается с символа '$' и далее может быть заключено в фигурные скобки {}, если Вы хотите объеденить полученное значение с последующим текстом исключая пробелы. Например значеним "$USER_AGENT" является соответствующая строка идентифицирующая браузер, а если вы хотите объеденить ее с текстом "_12345" то используйте "${USER_AGENT}_12345" Для включения в значение символа '$' используйте '\$', для '\' -- '\\', для '"' -- '\"' и т.д. Если при подстановке, соответствующая переменная не найдена подставляется значение "undefined".

═════ Данная версия сервера поддерживает следующие теги:

include
<!--#include virtual="patch/file_name" -->
<!--#include file="full_patch/file_name" -->
Оба варианта этой директивы включают в документ содержимое файла file_name. В первом случае документ ищется начиная с каталога сервера. Во втором случае начиная с каталога текущего документа, и это может быть любой файл на машине, т.е. если маршрут начинается с "/" или "X:" то каталог текущего документа не подставляется. В обоих случаях patch вообще может быть опущен. Если в результате подстановки обнаруживается, что запрашиваемый документ находится на сервере в подкаталоге /CGI-BIN/ то он воспринемается как CGI и запускается. Выходной поток соответственно транслируется, начало до последовательности "\r\n\r\n" убирается. При этом если в имени не содержалось символа '?' то CGI передается исходный запрос, с которым обратились к родительскому документу. Если обнаружен '?' то дальнейшая последовательность будет передана как запрос, она должна быть соответственно преобразована Вами.

exec
<!--#exec cgi="file_name" -->
<!--#exec cmd="full_patch/file_name" -->
Запуск скрипта. Все аналогично include. В первом случае файл запускается из коталога CGI-BIN, во втором должен быть задан полный маршрут.

fsize и lastmod
<!--#fsize virtual="patch/file_name" -->
<!--#fsize file="full_patch/file_name" -->
<!--#lastmod virtual="patch/file_name" -->
<!--#lastmod file="full_patch/file_name" -->
Подставляет размер или дату последней модификации файла.

echo
<!--#echo var="var" -->
Выводит значение переменной.

printenv
<!--#printenv -->
Выводит все переменные.

break
<!--#break -->
Вызывает прекращение обработки документа.

if -- elif -- else -- endif
<!--#if expr="выражение" -->
текст
<!--#elif expr="выражение" -->
текст
<!--#elif expr="выражение" -->
текст
...
<!--#else -->
текст
<!--#endif -->
Подстановка по условию. Текст будет передаваться пользователю в зависимости от истинности условий. Выражение может содержать переменные и значения разделенные знаками логических операций и скобками:
! -- перед вырожением -- простое отридцание
= или == -- равно
!= -- не равно
<,>,<=,>= -- соответственно.
&& между выражениями логическое и.
|| между выражениями логическое или.
Если вообще нет никакого знака сравнения, то значение выражения сравнивается с "undefined". Части elif и else могут быть пропущенны. Часть elif может повторяться сколько угодно раз. Обязательно долен быть закрывающий тег endif.

set
<!--#set var="переменная" value="значение" -->
Добавление или изменение значения переменной. Не стоит злоупотреблять этой опцией, так как и количество переменных которые можно добавить и размер буфера под них ограничены.


English ════════ Описание ════════ Новости

Aport Ranker ═════════