SSI в примерах - Сервера - Каталог статей - Программирование, защита систем, сайтов.Новости, статьи
Пятница
12/Ноя/2010, 12:36:00
ExCode
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Категории раздела
Взлом/Защита [34]
Сети [9]
Кодинг: С/C++ [19]
Кодинг: Pascal/Delphi [31]
Кодинг: Java/JavaScript [16]
Кодинг: PHP [22]
Базы данных [8]
Система Windows [13]
Системы *nix/*BSD [18]
Другое [8]
Сервера [10]
Кодинг: HTML/XML/DHTML/CSS [5]
Кодинг: Perl [5]

Наш опрос
Зарабатывайте вместе с UcoZ!
Какой ОС Вы пользуетесь

[ Результаты · Архив опросов ]

Всего ответов: 294

Главная » Статьи » Сервера

SSI в примерах
Дата последней модификации документа

Простая директива:

Сегодняшнее число в нужном формате

Если нам нужно вывести дату не в стандартном для данной конфигурации программных средств виде, а в том, какой нам нужен (например, "вторник, 30 мая, 2000"), то можно воспользоваться следующей конструкцией: Получение дня недели

















Получение числа


Получение названия месяца



























Получение года


Собственно вывод получившейся строки

,

,

Форматы параметров для config timefmt надо смотреть для каждой конфигурации веб-сервера отдельно. Приведенный пример - FreeBSD, Apache. Более подробно см. man timefmt
Подобная конструкция используется на веб-узле интернет-магазина Levingston.Ru
Дата модификации внешнего файла

Часто на компьютерных сайтах выкладывают прайс-лист в формате MS Excel или Word и каждый раз руками прописывают дату его изготовления. С помощью SSI это делается примерно следующим образом:

Прайс-лист

(MS Word 6.0/95, )

Такая конструкция используется на веб-узле компании Дункан Сервис
Борьба с <p> Как правило, в этом контейнере пишут "извините, но вам следует обновить браузер", по идее же там должны быть альтернатива для пользователей старых версий браузеров. Поскольку на нормальном сервере информация часто меняется, а вебмастеру же лениво каждый раз вносить правки в двух местах. С помощью SSI проблема решается раз и навсегда: в контейнер <noframes> вносится директива, вставляющая тот самый файл, в котором делаются правки или попросту линейку навигации.
Борьба с прямыми ссылками на документы на веб-узле с фреймами

Одним из аргументов против использования фреймовых структур при создании веб-узлов является неудобство прямых ссылок на содержательные файлы. Например, при ссылке из поисковых машин или на конкретный (не корневой) документ с другого веб-узла пользователь попадает на страницу, лишенную оформления или элементов навигации, которые обычно помещаются в отдельный навигационный фрейм. С помощью нехитрой конструкции SSI эту проблему можно решить. Для этого необходимо проанализировать, откуда пришел пользователь (переменная HTTP_REFERER) Если он пришел не с нашего сервера, а извне - построить фреймовую структуру и в качестве содержательного фрейма подставить документ, запрошенный пользователем.

В примере ниже файл content.html - это тот документ, на который стоит прямая ссылка (допустим, из поисковой машины), frame.html - файл в котором строится фреймовая структура. В QUERY_STRING подставляется значение done для того, чтобы избежать бесконечной вложенности фреймовых структур.

Файл content.html



...



...

Файл frame.html




?done">

Подобная конструкция используется на веб-узле интернет-магазина Болеро
Версия страницы для печати

Часто возникает прикладная задача - красивый многоколоночный дизайн с верхней и нижней шапками, туча баннеров, но при печати все это не нужно - лишняя бумага, ненужная информация... Поэтому хочется сделать простой альтернативный вид страницы специально для печати. Чтобы это проделать, достаточно подготовить два варианта верхней и нижней шапок, один --для экранного отображения, другой - для печати. В качестве переключения между этими вариантами используем переменную QUERY_STRING. Ниже приведены принципиальные структуры для самой страницы (file.html) и для верхней и нижней шапок (top.html и bottom.html).

Структура самой страницы (file.html):


здесь тело документа

Структура top.html и bottom.html


шапка для печати

шапка для просмотра

Ссылка на каждой странице должна быть вида

?for_printing
>версия для печати

Подобная конструкция используется на веб-узле Всероссийского Клуба Вебмастеров
Борьба с пунктами меню

Предположим, у нас есть несколько разделов веб-узла, документы, относящиеся к разделам, лежат в разных директориях. Задача - сделать так, чтобы в меню навигации по этим разделам пропадала (или не подсвечивалась, выделялась другим цветом и т.д.) ссылка на тот раздел, в котором находится пользователь в данный момент. Для этого можно использовать переменную DOCUMENT_URI.


Первая страница



О нас



Наши работы



Наши партнеры



Наши клиенты



Наши цены



Наши координаты



Наша история



Поиск

Подобная конструкция используется веб-узле компании Веб 2000
Контекстный вывод текста в зависимости от условий

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


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

т.е. сравнивается переменная HTTP_REFERER
Борьба с разными версиями дизайна для разных браузеров

Всем известно, что браузеры различных производителей и версий по-разному отображают одну и ту же HTML-разметку документа, начиная от специальных тагов и атрибутов и заканчивая поддержкой различных версий JavaScript. Для того, чтобы веб-узел выглядел нормально и для одной версии браузера и для другой или чтобы не сыпались ошибки JavaScript средствами SSI можно сделать проверку версий или браузеров и выдавать различные варианты HTML-разметки. Для этого анализируется переменная HTTP_USER_AGENT, в которой содержится информация о типе и производителе браузера:


Если версия браузера не ни же 4 или 5, то вывести вариант
дизайна, использующий, например, DHTML

Здесь вывести простой дизайн

Подобная конструкция использовалась для построения фреймовой структуры и выводе внутреннего меню (для Netscape - на DHTML, для MSIE - на ActiveX) на веб-узле журнала "ОМ"
Борьба с оформлением результатов работы скриптов

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

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

...
# определение адреса, куда направлять данные
$query = $ENV{QUERY_STRING};
# определение места, из которого был вызван скрипт
$uri = $ENV{DOCUMENT_URI};
...
# отправка данных в тот же HTML-документ, из которого был вызван скрипт
print "

n";
...

Подобная конструкция использована в разделе "Голосования" для интернет-супермаркета Levingston.Ru
Что можно сделать, используя Cookie и SSI

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

Баннеры, кэширование и SSI

Прислал Кирил Хлопов (NewTech)

Как известно, баннерные системы предлагают включать в код некоторую случайную величину в URL скрипта показа - защита от кеширования.

* Можно генерировать всю страницу скриптом, от первого до последнего символа
* Можно сделать как советуют страницы помощи баннерных систем - включить by SSI скрипт, генерящий случайный баннер
* Динамически записать часть документа с кодом банера JavaScrip-ом

А можно еще так:





То есть как случайная величина выступит количество секунд от 1970 года. Не тратится время и память на запуск скрипта-генератора, Java-Script (как среди некоторых пользователей сейчас это модно) может быть выключен. На мой взгляд вполне радужно :-)
Все это проверено и применяется нашим администратором на www.j2.ru
Один шаблон отображения - разное содержание

Прислал Евгений Беспальчиков (KADIS)

Часто шаблоны используют таким образом: <>есть только один файл, который описывает структуру страницы, а основное содержание включается директивой

ссылки, соответственно, будут иметь вид:

href="www.your_domain.ru/index.html?page1"
href="www.your_domain.ru/index.html?page2"
...

Проблема возникает, если пользователь набирает адрес непосредственно http://www.your_domain.ru, т.е. QUERY_STRING=""

Решение:





где default.html - страница корневого индекса (оглавления) и просто заглушка.

Источник: http://www.realcoding.net

Категория: Сервера | Добавил: BlackMage (03/Сен/2006)
Просмотров: 562 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email:
Код *:
-->
Форма входа
E-mail:
Пароль:

Поиск

Друзья сайта
  • Создать сайт
  • Все для веб-мастера
  • Программы для всех
  • Блокнот программиста

  • Статистика

    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0


    Copyright Veon © 2006-2009