Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты

SSI в примерах


Страница: 4

Контекстный вывод текста в зависимости от условий
Предположим, у нас стоит задача менять внешний вид первой страницы узла в зависимости от того, откуда пришел пользователь. Для реализации этой задачи используется следующая конструкция:

<!--#if expr="$HTTP_REFERER=/www.zzz.ru/" -->

Здесь совершаются необходимые действия

<!--#endif -->

т.е. сравнивается переменная HTTP_REFERER

Борьба с разными версиями дизайна для разных браузеров
Всем известно, что браузеры различных производителей и версий по-разному отображают одну и ту же HTML-разметку документа, начиная от специальных тагов и атрибутов и заканчивая поддержкой различных версий JavaScript. Для того, чтобы веб-узел выглядел нормально и для одной версии браузера и для другой или чтобы не сыпались ошибки JavaScript средствами SSI можно сделать проверку версий или браузеров и выдавать различные варианты HTML-разметки. Для этого анализируется переменная HTTP_USER_AGENT, в которой содержится информация о типе и производителе браузера:<!--#if expr="$HTTP_USER_AGENT=/Mozilla\/4/ || $HTTP_USER_AGENT=/Mozilla\/5/" -->
Если версия браузера не ни же 4 или 5, то вывести вариант дизайна, использующий, например, DHTML
<!--#else -->
Здесь вывести простой дизайн
<!--#endif -->

Борьба с оформлением результатов работы скриптов
Самая большая проблема со скриптами заключается в том, что если есть большое количество наработанного ПО - при смене дизайна требуется их перенастройка. Хорошо, если ПО сделано правильно и изменение шаблонов отображения не касается самой математики, однако и в таких случаях существуют проблемы. Например, на странице поиска было бы неплохо крутить баннеры и рекламных сетей, но директивы SSI не отрабатываются в файлах .cgi. Решить подобные проблемы можно использованием SSI следующим образом: не скриптом обрабатывать шаблоны отображения, а вызывать скрипт из HTML-документа через SSI (к сожалению, таким образом можно работать только с теми скриптами, которые используют метод GET - переменная CONTENT_LENGTH не доступна в SSI) Итак, как это делается Есть HTML-документ, который размечен в общем стиле дизайна. В него вставляется директива

<!--#include virtual="/cgi-bin/script.cgi?$QUERY_STRING" -->

На первом шаге, пока QUERY_STRING пуста - вызывается первый шаг скрипта, на последующих шагах работы скрипта - передаются необходимые параметры. В самом скрипте важны три строчки:

...

# определение адреса, куда направлять данные

$query = $ENV{QUERY_STRING};

# определение места, из которого был вызван скрипт

$uri = $ENV{DOCUMENT_URI};

...

# отправка данных в тот же HTML-документ, из

которого был вызван скрипт

print "<form action=$uri method=get>\n";

...

Что можно сделать, используя Cookie и SSI
Часто встречается конструкция на JavaScript, которая выводит "Здравствуйте, Иван Иваныч!" при заходе на страницу веб-узла. То же самое можно проделать с помощью SSI директивой

<!--#echo var="HTTP_COOKIE" -->
1 2 3 [4] 5



  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |