Регистрация
Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
PHP Поиск
Наша группа в телеграмм для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov
SSI Server-Side Includes - включение кода на стороне сервера
Использование SSI в построении сайта или что такое .shtml и чем этот формат лучше .html
Структура странички выглядит приблизительно вот так:
Родитель news.shtml
<head>
Переменные SSI
Имя страницы <title>Название странички</title>
Метатеги <!--#include virtual="путь_к_скрипту/mt.shtml" -->
Стили <!--#include virtual="путь_к_скрипту/styles.shtml" -->
JavaScript <!--#include virtual="путь_к_скрипту/js.shtml" -->
</head><body>
Верх сайта <!--#include virtual="путь_к_скрипту/top.shtml" -->
Табличка - структура сайта, для примера разбита на 3 части.
|
</body></html>
Нужно учесть:
Что и верх и низ сайта (include virtual) не находятся в общей таблице.
Так быстрее будет отображаться информация на экране.
Грамматика: #set var=*** value=***
Присваивает новое значение переменной. Например:
<!--#set var="SERVER_ADMIN" value="новый@адрес.ua"-->Переменные:
Название странички - <!--#set var="NamePage" value="НОВОСТИ" -->
SSI-команда - <!--#config errmsg="[ERROR $NamePage]" --> Выводится при какой то ошибке SSI
URL странички - <!--#set var="WWW" value="http://$HTTP_HOST/km/" --> Обычно это полезно для длинных путей
Цвет бекграунда - <!--#set var="COLORBCG" value="FAF6EF"--> Значок # желательно не ставить
Цвет заливки 1 - <!--#set var="COLORfonA" value="FBF7EE"-->
Цвет заливки 2 - <!--#set var="COLORfonB" value="D8F3D8"-->
Цвет заливки 3 - <!--#set var="COLORfonС" value="008000"-->
Цвет титров 1 - <!--#set var="COLORtitrA" value="800000"-->
Цвет титров 2 - <!--#set var="COLORtitrB" value="008000"-->
Цвет титров 3 - <!--#set var="COLORtitrС" value="404040"-->
Заменив один из параметров "цвета" у вас поменяется его значение во всех дочерних документах
Для большей наглядности мы перенесем наши переменные на несколько страниц, чтобы у каждой страницы был свой стиль.
На родителе мы оставляем: SSI-команду ошибки и URL странички, но это после такого скрипта
<!--#if expr="$QUERY_STRING=/ssi/" --> <!--#include virtual="path/varssi.shtml" --> <!--#elifexpr="$QUERY_STRING=/new/" --> <!--#include virtual="path/varnew.shtml" --> <!--#else --> <!--#include virtual="path/var.shtml" --> <!--#endif --> ... <!--#config errmsg="[ERROR $NamePage]" --> <!--#set var="WWW" value="http://$HTTP_HOST/" -->В каждом из файлов: varssi.shtml, varnew.shtml и var.shtml вписаны переменные "цвета" с различными параметрами
Если в строке после названия файла будет часть слова с символами "ssi" то считыватся будет страничка varssi.shtml с своими параметрами "цвета"
Соответственно при символах "new" страничка - varnew.shtml. Если ничего подобного не находится - то страничка var.shtml.
Те переменные которые должны быть разными для разных страничек - лучше вписывать в файлы var***.shtml, а те которые раз и на всегда в var.shtml
Но можно и так <title><!--#echo var="NamePage"--></title>
Переменная NamePage будет использоваться еще много раз, поэтому поменяв переменную в установках "set var=" она меняется автоматически везде.
Нужно учесть что в страничку вы пишете только метатэги без <html><head></body></html> например:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Некоторые сразу возмутятся что мой FrontPage перегенерирует (создаст заново) все странички с моими изменениями.
Да но после этого вам нужно закачать все странички на сервер, а если их 200, а закачав Вы поняли
что не все дописали или что не так, и что все сначала.
А здесь одну страничку поменяли и для все одинаково.
Теперь другие возмутятся, что не бывает так что у всех страничках одинаковые метатэги должны быть.
Да я соглашусь, что некоторые странички должны иметь другие метатеги. Как это решить? – Например:
Содержимое форума не надо кэшировать:
<!--#ifexpr="$DOCUMENT_NAME=/forum/" --> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <!--#else --> <META HTTP-EQUIV="Cache-Control" CONTENT="Public"> <!--#endif -->Если в имени файла будет строка "forum", то впишется строка с параметром "no-cache", для всех остальных строка с параметром "Public".
Внутри может быть:
Простая ссылка - <link rel="stylesheet" type="text/css" href="kms.css">
Или выбор в зависимости от браузера
<!--#ifexpr="$HTTP_USER_AGENT=/MSIE/ || $HTTP_USER_AGENT=/Microsoft/" --> <link rel="stylesheet" type="text/css" href="kmsi.css"> <!--#elifexpr="$HTTP_USER_AGENT=/Opera/" --> <link rel="stylesheet" type="text/css" href="kmso.css"> <!--#elifexpr="$HTTP_USER_AGENT=/Mozilla/" --> <link rel="stylesheet" type="text/css" href="kmsn.css"> <!--#else --> <STYLE type=text/css> P { FONT-FAMILY: tahoma, verdana, arial, helvetica; FONT-SIZE: 12px} TD {FONT-FAMILY: verdana, arial, helvetica; FONT-SIZE: 12px} A {TEXT-DECORATION: none;color: "black"} A:hover {TEXT-DECORATION: none; COLOR: #800040;} INPUT {font-family: Tahoma; color:black; font-size=13px;} </STYLE> <!--#endif -->В зависимости от того что находится в переменной ("environment variables") $HTTP_USER_AGENT какой тип браузера у Вас и выводится от сервера к Вам только та часть, которая соответствует браузеру. Ну и если браузер не опредияется, то выводится определенный набор стиля что после строки <!--#else -->.
Это все конечно размером в байты, но нужно учесть что это все находится в отдельном файле styles.shtml который легко редактировать и работает для всех страниц сайта.
Внутри может быть:
Простая ссылка - <SCRIPT language=JavaScript src="/win_open.js"></SCRIPT>
Или выбор в зависимости от страницы
<!--#if expr="$DOCUMENT_NAME!=/forum/" --> <SCRIPT language=JavaScript src="../js/win_open.js"></SCRIPT> <!--#endif -->То есть скрипт будет присутствовать на всех страницах кроме тех в которых в имени будет присутствовать слово forum
Внутри может быть целый комплекс дизайнерского решения, поэтому мы ограничимся большим названием и выводом банера :
<FONT color="#<!--#echo var="COLORtitrA" -->" style="font-size: 22px;text-align: center;"> <!--#echo var="NamePage" --> </FONT>То есть на место color (цвет фонта) будет вписана переменная COLORtitrA которую мы определили еще в родительском файле news.shtml и var.shtml там же и переменная NamePage с названием страницы.
Вернемся обратно к файлу top.shtml, и сделаем вывод банера
<!--#include virtual="path/baners.shtml" -->Вот оно чудо, как часто Вы меняете банерщиков например по обмену, плохой CTR - меняйте. Естественно в одном файле - baners.shtml
хотите свою банерную систему - пожалуйста:
<!--#include virtual="../cgi-bin/ranban.cgi" -->
Можно что-нибуть и посложнее:
<!--#config timefmt="%H"--> <!--#if expr="DATE_LOCAL>9" --> <script language="JavaScript" src="http://www.baners.com/ban.cgi"> </script> <!--#else --> <!--#include virtual="/cgi-bin/ranban.cgi" --> <!--#endif -->То есть понятно после 9 часов дня показываем банера с сайта по JavaScript, а с 0 часов свой внутрений скрипт "рандомайзе показ"
<table width="90%" border="1" cellspacing="0" cellpadding="0" align="center"> <TR><TD> <!--#include virtual="path/left.shtml" --> </TD> <TD> <!--#include virtual="path/start.shtml" --> </TD> <TD> <!--#include virtual="path/right.shtml" --> </TD></TR> </table>
left.shtml
Левая часть сайта здесь мы выводим табличку, с линками по всему сайту. На страничке используются заготовленные переменные цветов и что важно полный адрес линков с переменной WWW
-
Цвет бекграунда - COLORBCG
Цвет заливки 1 - COLORfonA
Цвет заливки 1 - COLORfonB
Цвет титров 1 - COLORtitrA
Цвет титров 2 - COLORtitrB
<table border="0" cellpadding="0" cellspacing="0" width="120" align="center"> <tr><td color="<!--#echo var="COLORfonA" -->"> <a href="<!--#echo var="WWW" -->/news.shtml"> <FONT color="<!--#echo var="COLORtitrB" -->">news </FONT></a></td></tr> </table>А в конце не помешает SSI линк на страничку left_baner.shtml, в которой Ваш набор счетчиков.
<!--#include virtual="left_baner.shtml" -->start.shtml
Здесь может быть большой набор скриптов но мы ограничимся новостийными выводами с вариациями.
По умолчанию стартует скрипт новостийных заглавий, а при нажатии на заглавие вы попадаете на вывод новостийного блока или конкретной старой новости
<!--#ifexpr="$QUERY_STRING=/new/" --> <!--#include virtual="path/news.cgi?$QUERY_STRING& COLORfonA=$COLORfonA&COLORtitrA=$COLORtitrA" --> <!--#elifexpr="$QUERY_STRING=/old/" --> <!--#include virtual="path/old_news.cgi?$QUERY_STRING" --> <!--#else --> <!--#include virtual="path/zaglavie_news.cgi?$QUERY_STRING" --> <!--#endif -->В первом "инклюде" если Вы заметили мы передаем наши переменные среды SSI в среду CGI, то есть наши цветовые переменные передаются в CGI скрипт.
Вот здесь как раз важно чтобы в переменной не было знака # а то ничего не получится
right.shtml
Здесь тоже может быть большой набор скриптов, меню, линков в зависимости от различных "переменных окружения" ("environment variables").
Например HTTP_COOKIE
<!--#ifexpr="$HTTP_COOKIE=/Administrator/" --> <!--#include virtual="path/admin.cgi?$QUERY_STRING& COLORfonA=$COLORfonA&COLORtitrA=$COLORtitrA" --> <!--#endif -->То есть в данном случае только лично у Вас будет выводится скрипт admin.cgi с широкими возможностями по администрированию странички.
И только по тому что у Вас в COOKIE прописано святое слово Administrator
Хотя Вы понимаете что для таких случаев лучше, что-то типа такого kmWmtfSWNlFnLM
Как закодировать и записать в ПЕЧЕНЬЕ такой пароль, это разговор не для этой темы
Внутри может быть тэги копирайтов , банеров, элементы своей статистики типа:
<!--#include virtual="stat.cgi?file=$DOCUMENT_NAME& name=$NamePage&$QUERY_STRING"-->
Не забывайте в дочерних файлах дописывать SSI-команду:
<!--#config errmsg="[ERROR $NamePage]"-->
А то надпись "[an error occurred while processing this directive]" очень уж некрасива.
Читать дальше: Таблица цветов RGB.
Прокомментировать/Отблагодарить
Популярное:
- Анализ сайта
- Проверка email
- Чей IP-адрес?
- Чей домен?
- Где телефон?
- Генератор Sitemap
- Примеры Ajax
- Примеры PHP
- Примеры Javascript
- Примеры HTML, CSS
- Бесплатные прокси
- GEO-сервисы
- Сайт в ТОП (SEO)
- Полезные ссылки
- Генератор Robots.txt
Содержание:
- HTML
- Что такое HTML
- <!DOCTYPE>
- Мета теги в <head>
- Тег <base>
- Текст в html
- HTML списки
- Ссылки
- Картинки на сайте
- Таблицы
- Фреймы
- Формы
- DHTML
- Музыка
- Видео
- Карты изображений
- SVG карты
- Графика в HTML
- SSI .shtml
- Таблица цветов RGB
- Правильное
сочетание цветов - Таблица
«безопасных»
цветов - Таблица символов
- Примеры HTML, CSS
- CSS
- JavaScript
- PHP + MySQL
- Введение в PHP
- Основы языка
- Использование
массивов - $_server
- Создание функций
- Строки
- Функции работы
со строками - Объектное
программирование - Формы
- Файлы
- Загрузка файлов
на сервер - MySQL
- Cookie
- htaccess
- Безопасность
- Сессии
- Отправка почты
- Кэширование
- Дата, время
- Математические
функции - Дополнительные
возможности - Регулярные
выражения - Библиотека Curl
- IMAP, POP3, NNTP
- Оптимизация
- Примеры скриптов
- XML + XSLT
- AJAX
- Графика CorelDRAW
- SEO
- Сервисы
- Разное
- Движки сайтов (CMS)
- Регистрация
доменов и хостинг - Заработок для
web-мастеров - Хостинг
- Настройка DNS
- ADSL
- RSS
- ActiveX и HTML
- Паролирование
страницы - HTTP коды
- HTTP протокол
- HTTP заголовки
- Прячем ссылки
- ☠ Черный список
сайтов - ☭ Заработок
в интернете - Термины и
определения - Продажа доменов
- ✉ Настройки
Яндекс-почты - Кнопки социалок
- ☎ Настроки SIP
в телефоне - Создание
поискового плугина - Сервис
коротких ссылок - Telegram: бот, ссылки
- Шаблоны сайтов
- Друзья
- Задания к л/р
- Примеры
зачетных задач
- Статьи, обзоры
- Новости