SSI и общий стиль


SSI и общий стиль

Представленная ниже страница, лишь часть огромного сайта посвященного различной компьютерной документации, на сайте собрано более 800 мб информации. Если Вы не нашли в этой статье, то что Вы ищите попробуте посмотреть здесь, cпросить на форуме или поискать необходимую Вам информацию в нашем каталоге ссылок сайтов компьтерной тематики.

Если же Вы хотите приобрести бумажную копию представленных здесь
материалов, обращайтесь в наш книжный магазин.

С уважением,
команда разработчиков eManual.ru

Описание SSI на русском языке.


Аббревиатура названия дня недели

Полное название дня недели

Sunday

Аббревиатура названия месяца

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

January

День месяца

01 (не 1)

Дата в формате «%m/%d/%y»

01/31/90

День месяца

Часы в 24-часовом формате

Часы в 12-часовом формате

День года

Номер месяца

Минуты

Время в формате «%I:%M:%S %p»

11:35:46 PM

Секунды

Время в секундах с 01.01.1970

957228726

Время в формате «%H:%M:%S»

14:05:34

Неделя года

Номер дня недели

Год в формате ГГ

Год в формате ГГГГ

Временная зона

MSK

Описание SSI на русском языке
Server Side Includes Структура команд SSI+ Основные команды SSI+ Примеры использования SSI+ Команда echo Команда include Команда fsize Команда flastmod Команда exec Команда if Команда goto Команда label Команда break

Технология создания активных документов SSI+ — Server Side Includes предложена фирмой Questar Microsystems. Эту технологию поддерживают такие WWW сервера как Apache , Netscape, Spry Web и Microsoft Internet Information Server.

Поддержка этой технологии связанна с специальной конфигурацией WWW сервера и протокола HTTP.

Технология Server side includes (SSI) позволяет использовать в HTML документах такие возможности как: опрос текущего времени и даты, условного выполнения форматирования в зависимости от логических сравнений, формировать запросы или модифицировать базы данных, посылать электронную почту, вызывать программы или CGI scripts.

Возможности технологии SSI+ задают механизм совместного использования языка HTML и программ CGI Script.

Формат команды SSI+:

‘ »

где: ‘ одна из следующих команд: ‘echo’, ‘include’,
‘fsize’, ‘flastmod’, ‘exec’, ‘config’, ‘odbc’, ’email’, ‘if’,
‘goto’, ‘label’, ‘break’ параметры (атрибуты) команды, значения которых зависят от командой . Формат задания переменных такой же как и формат задания атрибутов для команд языка HTML: ‘=’ ‘»‘ variable data ‘»‘ ‘=’ ‘»‘ variable data2 ‘»‘
‘=’ ‘»‘ variable datan ‘»‘ » конец обращения к SSI команде. Отметим, что в отличии от обычных команд языка HTML для команд SSI+ задание значений переменных-атрибутов должно обязательно заключаться в «двойные кавычки» («) (для языка HTML значения атрибутов заключаются в двойные кавычки только в случае когда они содержат служебные символы или пробелы).
Заметим, что если сервер и просмотрщик не поддерживают режима работы SSI, то команды SSI воспринимаются просто как коментарии и не выводятся на экран просмотрщика.

Чать команд SSI имеют подкоманды, управляющие их работой, например, команды if, odbc, email, и exec. Формат подкоманды следующий:

‘&&’ ‘&&’

где: ‘&&’ зарезерированный символ для обозначения начала и конца подкоманды. имя подкоманды. Замечание о SSI документах
SSI+ документ по умолчанию имет префикс (расширение) ‘.SHT’ или ‘.SHTM’ для их отличия от обычных HTML документов, которые имеют префикс ‘.HTML’ или .HTM.
Хотя при конфигурации сервера можно обявить все документы как SSI, но это снижает его эффективность.

Основные команды SSI+

‘echo’ Включение значений CGI переменых в HTML документ.
‘include’ Включение файла в HTML документ.
‘fsize’ Включение размера файла в HTML документ.
‘flastmod’ Включение даты последней модификации файла в HTML документ.
‘exec’ Выполнение внешнего исполняемого файла (CGI программы). Выходной поток данных (стандартный вывод) этой программы включается в документ.
‘config’ Установка параметров для SSI+ команд.
‘odbc’ Оращение к внешней ODBC СУБД.
’email’ Отправка электронной почты или представление формы.
‘if’ Условный оператор, управляющий выполнением других команд SSI и вывода документа.
‘goto’ Оператор перехода на определенную SSI метку (‘label’).
‘label’ Метка в документе.
‘break’ Остановка вывода документа.

Включение значений переменных окружения в HTML документ. Команда echo имеет только одну переменную var
Пример:

Вы используете просмотрщик

Если данный документ просматривается через просмотрщик MS Internet Explorer 3.0 for Windows 95, то эта команда даст следующий результат

Вы используете просмотрщик Mozilla/2.0 (compatible; MSIE 3.0; Windows 95)

А для просмотрщика, через который вы сейчас читаете этот текст, получим

Вы используете просмотрщик Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)

WWW сервер, соторый понимает технологию SSI, как правило, использует описанные ниже переменные окружения. Кроме того, если на сервере разрешено выполнение испольнаяемых модулей (CGI Script программы), то в документе могут быть использованы и переменные окружения CGI. «DOCUMENT_NAME» локальное имя документа. «DOCUMENT_URI» локальный путь к документу от базовой директории WWW сервера. «QUERY_STRING_UNESCAPED» Строка, полученная от клиента, содежащая все shell-special characters escaped with % «DATE_LOCAL» Текущая локальная дата и время. «DATE_GMT» Дата и время по Гринвичу (Greenwich). «LAST_MODIFIED» Дата последней модификации текущего документа. «REMOTE_ADDR» IP адрес удаленного клиента. «QUERY_STRING» Строка, полученная от клиента. «SERVER_SOFTWARE» Имя HTTP server software. «SERVER_NAME» Имя компьютера, на котором работает WWW сервер. «GATEWAY_INTERFACE» Имя и версия Common Gateway Interface served WWW (HTTP) сервера (name/version). «SERVER_PROTOCOL» Имя и версия HTTP сервера (name/version). «SERVER_PORT» IP порт WWW (HTTP) сервера. «REQUEST_METHOD» Тип метода запроса к серверу. «PATH_INFO» Виртуальный путь, указанный в запросе (путь от базовой диретории WWW сервера). «PATH_TRANSLATED» Полный путь, указанный в запросе. «SCRIPT_NAME» Имя программы для выполнения в CGI запросе. «REMOTE_HOST» Имя компьютера удаленного клиента. «AUTH_TYPE» Переменная для определения авторизованного метода доступа к серверу (authentication method). «REMOTE_USER» Имя пользователя для авторизованного метода доступа. «REMOTE_IDENT» Имя удаленного клиета, используемое для идентификации пользователя, согласно спецификации RFC931. «CONTENT_TYPE» Тип передачи данных от клиета по методам POST или PUT. «CONTENT_LENGTH» Длина в байтах переданных данных по методам POST или PUT. «HTTP_ACCEPT» Список, разделенный запятыми, MIME типов, понимаемых просмотрщиком клиента. «HTTP_USER_AGENT» Имя просмотрщика клиента (browser software). «HTTP_REFERER» ULR адрес HTML документа из которого сделан запрос клиентом. «HTTP_FROM» Имя (подобное имени Е-mail address) удаленного клиента. «HTTP_FORWARDED» Имя Proxy Server, через который общается клиент. «ACCEPT_LANGUGE» Список языков доступных для копьютера клиента. «HTTP_COOKIE» Содержение ответа клиента на запрос от сервера (см. ниже).

По команде ‘include’ на место этой команды подставляется содержимое файла, на который она указывает.

Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер. Пример:

Далее между двумя горизонтальными чертами следут вставленный в документ файл include.txt из текущей директории. Начало вставки
Данный текст вставлен в документ из файла include.txt
Конец вставки

fsize Вывод размера файла в документ.
Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер. Пример:

Выдача размера файла, который вы в данный момент читаете:
Размер файла ssi.shtml = 35k

Формат выдачи размера соответсвует установке сервера и может быть изменен командой config.

Команда flastmod включает дату последней модификациии файла.
Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер.

Пример:

Включение даты последней модификации файла ‘ssi.shtml’ в документ:
Дата последней модификации файла ssi.shtml = Monday, 10-Mar-1997 00:00:00 NS.

Формат выдачи даты и времени соответсвует установке сервера и может быть изменен командой config.

Выполнене внешних программ и программ CGI Script.

Парамеры: ‘cmd‘ задане командной строки параметров для выполнения UNIX shell исполняемых программ. Формат командной строки:

где: полное имя исполняемой программы или команды, и список аргументов, посылаемых исполняемой программе в командной строке.
Замечание: на сервере должны быть заданы пути к исполняемой программе в переменной окружения ‘PATH’.
В случае отсутвия пути программу можно запустить, используя shell или CGI Script. Стандартный вывод программы направляется в HTML документ. Вывод может быть модифицирован командой ‘config..cmdecho’. ‘cgi‘ вызов программы CGI Script. Вызываемая программа должна находится в директории CGI-BIN WWW сервера или иметь префикс, например, .cgi, который задан для Shell программ в конфигурационном файле сервера. Формат команды:


где полное имя программы CGI Script.
Стандартный вывод программы подставляется в документ.

Команда config модифицирует вывод в HTML документ.

Парамеры-атрибуты команды: ‘errmsg‘ The errmsg variable is used to set the error message that gets printed when the SSI+ engine encounters a parsing error or unavailable required data. This variable is retained for compatability with standard SSI, you may wish to use the onerr variable instead. ‘timefmt‘ Установка формата выдачи времемени в команде echo..time SSI+ token output. ‘sizefmt‘ The sizefmt variable is used to set the format ofecho..size SSI+ token output. ‘cmdecho‘ The cmdecho variable is used to set the output option of subsequent exec..cmd tokens. The format is ‘cmdecho’='» «‘where is either ‘ON‘ or ‘OFF‘. When the SSI+ parsing engine encounters an exec..cmd token it executes the command. If the command returns output then that output may be echoed into the HTML document or it may be ignored. The format of the data echoed is dependent on the presence or absence of config..cmdprefix and config..cmdpostfix tokens in the document. In the absence of config..cmdprefix and config..cmdpostfix tokens the output will be echoed exactly as returned with no formatting and no special character interpretation. In the presence of config..cmdprefix and/or config..cmdpostfix tokens the output will be formatted and interpreted. To activate echoing set cmdecho to ‘ON’ otherwise set it to ‘OFF’. The default is ‘OFF’. ‘cmdprefix‘ The cmdprefix variable is used to set the string prefixed to each line out output from subsequent exec..cmd tokens. The format is ‘cmdprefix=»‘ «‘where is any character string and/or HTML format tags. When the SSI+ parsing engine encounters an exec..cmdtoken it executes the command. If the command returns output then that output may be echoed into the HTML document or it maybe ignored. If the output is echoed (see ‘cmdecho’ above),then each line output from the executable will be prefixed with the string supplied before being echoed into the HTML document. ‘cmdpostfix‘ The cmdpostfix variable is used to set the string appended to the end of each line out output from subsequent exec..cmd tokens. The format is ‘cmdpostfix=»‘ «‘where is any character string and/or HTML format tags. When the SSI+ parsing engine encounters an exec..cmdtoken it executes the command. If the command returns output then that output may be echoed into the HTML document or it maybe ignored. If the output is echoed (see ‘cmdecho’ above),then each line output from the executable will be appended with the string supplied before being echoed into the HTML document. ‘onerr‘ The onerr variable is used to set the action to be taken when the SSI+ engine encounters an error. The format is ‘onerr=»‘»‘where is one of the following tags. ‘goto‘ causes a jump to a label token (see below). The format of the goto tag is: ‘goto’ where is the name of a label defined in a subsequent label tag (see below). ‘print‘ causes text to be printed. The format of the print tag is: ‘print «‘

is any HTML text or tag. ‘error‘ causes the current config..error message to be printed. ‘break‘ causes termination of the HTML document transmission to the client. ‘errorbreak‘ causes the current config..error message to be printed, and then causes termination of the HTML document transmission to the client. ‘printbreak‘ causes text to be printed, and then causes termination of the HTML document transmission to the client. The format of the printbreak tag is the same as the format of the print tag.

Example. The following token on an HTML document sets the SSI+ error message to ‘*** ERROR ***’. From this point on down when an error occurs in the SSI+ parsing engine the message ‘*** ERROR ***’will be inserted into the HTML document at the location of the offending SSI+ statement.

Example. The following token on an HTML document sets the SSI+ error action to print a message and terminate the document. From this point on down when an error occurs in the SSI+ parsing engine the message will be inserted into the HTML document at the location of the offending SSI+ statement, and the document will be terminated

Example. Suppose you wish to create an HTML document that performs a ‘PING’ operation on address ‘204.96.64.171’ and then echo the results back to the client browser, with each line echoed as an element in an unnumbered list. Insert the following lines into your HTML document: When the document is accessed by a remote browser the output would look something like this: Pinging 204.96.64.171 with 32 bytes of data: Reply from 204.96.64.171: bytes=32 time «‘ where; is any string and is reserved for future use.

The connect variable is used to connect to a pre-existing odbc data source, to allow for subsequent statement tag operations on that data source. The format of the connect variable is ‘connect=»‘ ‘,’ ‘,’

‘»‘where ; is the name odbc data source as defined on the local system in the odbc configuration utility. CAUTION! the account under which the server is run must be granted permission to access the data source. is the name which to log into the data source.

is the password with which to access the data source.

Example. To connect to a data source called ‘odbcsht’ as user ‘dufus’ and password ‘dorkboy’, one would use the following statement: .

The statement variable is used to submit a Transact SQL statement to the odbc data source. The format of a statement variable is as follows: ‘statement=»‘ ‘»‘,where: is any Transact SQL statement as defined in odbc and SQL reference text and help files.

Example. Suppose one wanted to query the ‘CUSTOMERS’ table from the above connected ‘odbcsht’ database to return all rows and display each row on a separate line. One may use the following sequence of statements: Connect to the database with a connect token as described above. Setup the output format with a statement token as described below. Execute the query: Each row of the database will the be inserted into the HTML page per the format statement as demonstrated below.

The format variable is used to prov >'»‘where; is a standard C language printf format string with the restriction of only allowing string (%s) insertions. The user is referred to any C language text for a description of this format. The number of instances of %s must be equal to the number of fields selected in a the subsequent SQL SELECT statement token.

Example. Suppose one wanted to query the ‘CUSTOMERS’ table from the above connected ‘odbcsht’ database to display the columns ‘name’, ‘age’, and ‘viscosity’ with each row on a separate line. One may use the following sequence of statements: Connect to the database with a connect token as described above. Setup the output format: . Execute the query with a statement token as described above. Each row of the database will the be inserted into the HTML page per the format statement. For example if the database has 3 rows the HTML output would look something like this: Customer’s name is Conan, and he is 29 years old, he prefers a motor oil with SPF 15 viscosity Customer’s name is Kevin, and he is 45 years old, he prefers a motor oil with SPF 30 viscosity Customer’s name is Alan, and he is 43 years old, he prefers a motor oil with SPF 50 viscosity

’email’
Отправка элктронной почты.
Пример:

При отработке данного примера будет отправлено электроное письмо (e-mail), содержание которого задано атрибутом message, по адресу, определенному атрибутом toaddress, если данный адрес и host, заданный атрибутом tohost (данный атрибут может отсутсвовать), реально существует.

The email tag prov >'»‘ where := ‘ON’ to enable debugging := ‘OFF’ to disable debugging, this is the default action if the debug variable is omitted. ‘fromhost’ defines the name of the smtp host sending the mail. ‘tohost’ defines the name of the smtp host the mail will be sent to. ‘fromaddress’ defines the email address from party. ‘toaddress’ defines the email address of the recipient party. ‘message’ defines the message body to be sent. ‘subject’ defines the subject field of the message to be sent. ‘sender’ defines the email address sending party. ‘replyto’ defines the email address to which replies should be sent. ‘cc’ defines the courtesy copy email addresses. ‘inreplyto’ defines the inreplyto field of the message to be sent. ‘id’ defines the id field of the message to be sent.

Example. The following document send an email with debugging enabled. Supposewe have a form with datum : [First, Last, Middle Initial, Company,Address1, Address2, City, State, Zip, Country, Phone, Fax, Request,Urgency, ReplyMethod; Email, Subject, Message] we may post thatform to an HTML document containing the following fragment tosend an email.

The if tag provides for conditional execution of SSI operations, and conditional printing of HTML text, based on logical comparisons. The format of the if tag is :

where: is the first operand of a logical comparison statement is the second operand of a logical comparison statement is the logical comparison method [‘==’, ‘!=’,’ ‘, ‘! ‘] is the action to take if the logical comparison evaluates to TRUE [‘goto’, ‘print’, ‘error’, ‘break’, ‘errorbreak’, ‘printbreak’]

The operands may be any string or number (integer or floating point). In the event that both operands are numbers the comparison will be based on the value of the numbers. In the event that one or both of the operands and not numbers, the comparison will be based on the alphabetic order of the operands.

The special case of the NULL operand is defined by two quotes with no characters between them. The NULL operand may used to check for the existence of form data from the remote client (see example below). The operator defines what kind of comparison is performed on the operands: ‘==’ The equalto operator evaluates to TRUE if the operands are equal to each other. ‘!=’ The notequalto operator evaluates to TRUE if the operands are not equal to each other. ‘ ‘ The greaterthan operator evaluates to TRUE if operand1 is greater than operand2 ‘! ‘ The notgreaterthan operator evaluates to TRUE if operand1 is not greater than operand2 ‘hasstring’ The hasstring operator returns TRUE is the text string in operand2 is found in the operand1 string.

In the event that the logical comparison evaluates to FALSE, nothing happens, If the logical comparison evaluates to TRUE then one of the following operations may be performed: ‘goto’ causes a jump to a label token (see below).The format of the goto tag is: ‘goto’ where is the name of a label defined in a subsequent label tag (see below). ‘print’ causes text to be printed. The format of the print tag is: ‘print’

is any HTML text or tag. ‘error’ causes the current config..error message to be printed. ‘break’ causes termination of the HTML document transmission to the client. ‘errorbreak’ causes the current config..error message to be printed, and then causes termination of the HTML document transmission to the client. ‘printbreak’ causes text to be printed, and then causes termination of the HTML document transmission to the client. The format of the printbreak tag is the same as the format of the print tag.

Example. The following document fragment compares two numbers, if the operands are not equal then a goto will jump to a label.

This should not print

This should print

Example. The following document fragment demonstrates conditional execution based on data delivered from an HTML form. Suppose we have two form datum called ‘formdata1’ and ‘formdata2’ and we wish to compare them. The following document fragment compares the two operands, if the operands are equal then a goto will jump to a label. Otherwise the next line will print and the document will terminate on a break token (see below).

The operands are not equal.

operands are equal.

Example. The following document fragment prints two different statements depending on whether or not the client agent is NCSA Mosaic.

You are not using Mosaic

You are using Mosaic


Example. Suppose we have a form with amongst other things a field named «BOO» and we wish to make sure that the remote client user enterted data into the «BOO» field before submitting the form. The following document fragment checks for the presence of data in the «BOO» field, if data exists then nothing happens, if data does not exist then a message will be displayed and the document will terminate.

Команда goto оператор перехода на маетку label.
Формат команды:

«

где имя метки, определенное командой label.

Пример.

This line will not print.

This line will print.

Замечание: Между сиволами «

где строка из не более чем 51 символа без пробелов, идентиифицирующая место в документе.

Задание метки не влияет на форматирование документа.

Что такое SSI и как его применять

SSI расшифровывается как Server S >SSI работает очень просто: при получении запроса на документ, содержащий SSI-директивы, http-сервер обрабатывает документ, выполняет все SSI-директивы, а получившийся в результате документ возвращает клиенту. Http-сервер не проверяет автоматически все документы на наличие SSI-директив, а только те, которые относятся к типу, указанному в настройках сервера.

Для указания http-серверу, какие документы считать содержащими SSI-директивы, в srm.conf , находящемся в /etc/httpd/conf надо раскомментировать следующие строки:

AddType text/html .shtml
AddHandler server-parsed .shtml

После этого все документы с расширением .shtml будут проверяться на SSI-директивы. Но удобнее будет определить чтобы все .html-файлы могли содержать SSI. Это делается добавление в srm.conf следующих строчек:

AddType text/html .html # не обязательно, т.к. он и так описан.
AddHandler server-parsed .html

Теперь надо разрешить выполнение SSI в каталоге, в котором лежат твои файла. Найди в access.conf описание каталога, в котором лежат твои html’ы и добавь в его Options директиву Includes :

#было так
Options Indexes
#стало так
Options Indexes Includes

Если твой каталог не прописан, его надо прописать. Почитай доку по Apache, чтоб узнать как это делается.:) А если у тебя нет возможности изменять srm.conf или access.conf , т.е. ты не root, тогда за пивом, а потом к админу.:)

SSI-директивы включаются в html-код в виде коментариев, но определенного формата:

Использовать можно следующие SSI-директивы: echo var

Ты пришел со страницы —

Твой IP — 195.248.164.231
Твой броузер — Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Мой сервер — www.perl.bos.ru
Ты пришел со страницы — (none)

include file
include virtual

Размер файла этой страницы:

Размер файла этой страницы: 8k

Время последней модификации файла этой страницы:

Время последней модификации файла этой страницы: (none)

Это стандартная ошибка при запуске скрипта, которого нет:

А теперь заменим сообщение об ошибке и повторим:

Это стандартная ошибка, возникающая при запуске скрипта, которого нет:
[an error occurred while processing this directive]
А теперь заменим сообщение об ошибке и повторим:
Ошибка, пишите автору ошибки

Размер файла этой страницы в килобайтах:

Размер файла этой страницы в байтах:

Размер файла этой страницы в килобайтах: 8k
Размер файла этой страницы в байтах: 8,357

Пример

printenv

Список переменных окружения:

Список переменных окружения:
DOCUMENT_ROOT=/cgi-bin/ HTTP_ACCEPT=*/* HTTP_ACCEPT_ENCODING=gzip, deflate HTTP_ACCEPT_LANGUAGE=en,x-ns1TRIgdQsxNhQ;q=0.4,x-ns2r3109OnmPe2 HTTP_CONNECTION=Keep-Alive HTTP_COOKIE=b=b HTTP_HOST=www.perl.bos.ru HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin REMOTE_PORT=1365 SCRIPT_FILENAME=/cgi-bin/view.pl SERVER_ADDR=195.230.75.98 SERVER_ADMIN=nicky@nm.ru SERVER_NAME=www.perl.bos.ru SERVER_PORT=80 SERVER_SIGNATURE= SERVER_SOFTWARE=Apache/1.3.12 (Unix) UNIQUE_ SCRIPT_NAME=/cgi-bin/view.pl DOCUMENT_URI=/cgi-bin/view.pl?view=ssi

Значение переменной SERVER_NAME:

Значение переменной SERVER_NAME:

Значение переменной SERVER_NAME:www.perl.bos.ru
Сменим значение:
Значение переменной SERVER_NAME: perl.bos.ru


HTML-код, который будет выводиться, если УСЛОВИЕ1 истинно

HTML-код, который будет выводиться, если УСЛОВИЕ1 ложно, а УСЛОВИЕ2 истинно

HTML-код, который будет выводиться, если все условия ложны

Условие — это либо строка, которая является истинной, если непустая, или набор операторов сравнения строк. Операторы могут быть =,!=, и >. Если вторая строка заключена в «/«(слэши), то условие истинно, если в первой строке встречается хоть одно вхождение второй строки. Можно объединять несколько операторов сравнения с помощью операторов &&(И) и ||(ИЛИ). Для группирования условий используются «()«(скобки).

Броузер: Internet Exploer

(c)Ерижоков А.А., 2000.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника: DH’s Linux Site

Технологии CSS и SSI. Язык программирования JavaScript. Назначение и общие принципы использования

Читайте также:

  1. CALS-технологии, этапы проектирования баз данных и их архитектура.
  2. CASE-технологии
  3. Cовременные технологии физического развития и воспитания детей дошкольного возраста.
  4. I. Механика. Общие понятия
  5. I. Общие положения
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ
  7. I. Общие положения
  8. I. Общие положения
  9. I. Общие положения
  10. I. Общие положения
  11. I. Общие положения
  12. I. Общие положения 1 страница

Тэги оформления форм в языке HTML. Моделирование деловых объектов формами. Передача параметров в шлюзовые (CGI) программы. Трансформация формы представления объектов при передаче в CGI-программу.

Формы дают возможность пользователям вводить информацию.

SSI — server side includes

SSI (Server S >CGI-скриптов и придавать страницам прочие элементы динамики.

Какие файлы обрабатываются как SSI, как добавить свои файлы

По умолчанию веб-сервер проверяет на предмет наличия SSI-инструкций только файлы с расширением *.shtml. Например, поместите SSI-команды в файл index.shtml и это сразу будет работать. Если есть необходимость проверять на наличие SSI другие файлы, соответствующие расширения для проверки можно добавить, поместив в файл .htaccess следующую инструкцию:

.ext1 тут — расширение файлов, которые должны проверяться на наличие в них SSI. Не рекомендуется добавлять расширения .html и .htm, так как в этом случае сервер будет проверять все html-файлы на предмет наличия SSI-вставок. Это может привести к совершенно бессмысленной нагрузке на сервер.

Ограничения

Пользователям хостинга доступны все директивы SSI за исключением одного ограничения для абонентов, которые используют тариф не предусматривающий запуск собственных cgi-скриптов. Для этих клиентов запуск скриптов недоступен и через SSI-инструкции. То есть, в терминах Apache для них действует опция NoExec.

Как работает и для чего используется SSI

Технологию SSI начинающие пользователи в основном могут использовать для двух целей: для «склейки» страницы из частей html-кода и для запуска скриптов с целью размещения результатов их работы на создаваемой html-странице. В первом случае с диска сервера читаются соответствующие файлы и вставляются в код страницы, откуда был вызван SSI-код. Во втором случае веб-сервер, найдя SSI-инструкцию, запускает скрипт, размещенный на диске, и вставляет в итоговую страницу результат выполнения скрипта.

«Склейка» страницы из частей html-кода. Используется для того, чтобы не дублировать в множестве веб-страниц один и тот же html-код. Например, можно вынести весь дизайн в SSI-включения, которые подключать в конкретном html-файле, в котором будет содержаться только текст конкретной страницы.

Поместим в файл header.inc «заголовок» веб-страницы (элементы дизайна, меню, нужные ссылки и другие элементы, которые присутствуют на всех страницах), а в файл footer.inc поместим нижнюю часть веб-страницы (завершающую часть дизайна). Далее создадим файл с именем index.shtml, который будет выглядеть так:

Предполагается, что в файлы-включения мы поместили html-код хотя бы вроде начальных/конечных тэгов , , и так далее. В результате пользователь получит страницу, в которую будет сначала включено содержимое файла header.inc , далее слова «А здесь у нас будет основной текст страницы» и затем содержимое файла footer.inc.

Такое использование SSI удобно с точки зрения отсутствия необходимости все время вставлять во вновь создаваемые страницы один и тот же html-код, а также с точки зрения удобства изменения основных элементов сайта — меняем в одном месте html-код, который сразу меняется на всех страницах по всему сайту.

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

Например, у вас есть скрипт-счетчик, который показывает сколько посетителей заходило на вашу страницу и находится он по адресу /cgi-bin/count.pl. Включим результат его работы в веб-страницу. Для этого в коде html-страницы разместим такой SSI-код:

В итоге на странице, которую увидит пользователь, будет размещен счетчик, который вывел скрипт /cgi-bin/count.pl.

Полный список команд SSI вы найдете в описании Apache-модуля mod_include

Еще примеры использования SSI

Инструкции SSI можно использовать не только для запуска скриптов и включения файлов. Также SSI позволяет работать с переменными окружения веб-сервера, производить манипуляции с датами, выполнять команды по условию и так далее. Хорошее описание наиболее востребованных применений команд SSI вы найдете на сервере CIT Forum.

Диагностика ошибок при использовании SSI

Если при использовании SSI-команд на своих html-страницах вы увидели сообщение «[anerror occured while processing this directive]», это свидетельствует о возникновении ошибки при обработке SSI-инструкции веб-сервером.

Возможные причины возникновения такой ошибки:

  • неверно задан путь к включаемому файлу/скрипту — такой файл не существует
  • неверно работает cgi-скрипт, который вы пытаетесь вставить в страницу
  • тариф, по которому работает ваш сервер, не позволяет использовать выполнение cgi-скриптов

Полезные ссылки

Для удобства пользователей мы размещаем здесь ссылки, которые будут полезны при самостоятельном изучении SSI и при работе с этой технологией на практике.


Внешние и встроенные таблицы стилей

Глава 10

Следующие две главы посвящены замечательному и широко используемому средству HTML, значительно облегчающему реализацию единого стилевого оформления при разработке больших веб-сайтов, – каскадным таблицам стилей (CSS, Cascade Style Sheets).

Возможности CSS

Таблицы стилей позволяют управлять отображением практически любого содержимого HTML документа. Например, с их помощью можно задать цвет, шрифт и прочие параметры, влияющие на то, как должны показываться заголовки. Можно задать полужирное или еще какое-нибудь начертание шрифта определений в списке определений. Помните, как это приходилось делать вручную в примерах гл. 4-

С использованием таблиц стилей можно забыть о необходимости физического форматирования текста, а также о настройке отображения таблиц, списков и других элементов HTML документов. Кроме того, таблицы стилей позволяют настраивать даже параметры отображения содержимого документа, недоступные при использовании HTML элементов (отступы абзацев, стили рамок рисунков и многое другое, вплоть до интервала между буквами текста и свободного позиционирования элементов страницы).

По-настоящему убедиться в полезности CSS можно тогда, когда приходит время менять дизайн всего сайта. Представьте себе, что есть сайт, представляющий собой достаточно большое учебное пособие, например по программированию на С++, содержащее 50 страниц с 200 примерами (листингами). По какой-то причине нужно поменять цвет шрифта этих самых листингов: ничего не поделаешь, придется вносить изменения в каждый тег

(200 штук). При использовании CSS достаточно изменить (или добавить) одну запись в таблице стилей. И это лишь один из множества возможных примеров.

Наверное, теперь понятно, почему технология CSS получила большое распространение вскоре после разработки и реализации ее поддержки в браузерах. Кроме того, с использованием каскадных таблиц стилей можно создавать документы, которые по-разному отображаются на различных типах устройств: от карманного ПК до проектора.

Чтобы использовать таблицы стилей в документах, нужно сначала научиться их создавать, не так ли- Именно с рассмотрения особенностей создания таблиц стилей и начнем.

Внешние и встроенные таблицы стилей

Для начала нужно рассмотреть, где могут находиться таблицы стилей. Итак, внешние таблицы стилей названы так потому, что помещаются в отдельных файлах. Данные файлы являются обычными текстовыми файлами, созданными, например, в редакторе Блокнот. Нужно лишь при сохранении этих файлов использовать расширение CSS (например, mystyle.css). Внешние таблицы стилей подключаются к документу при помощи HTML элемента LINK. При этом используются следующие атрибуты этого элемента:

• href – задает URI файла с подключаемой таблицей стилей;

• rel – для подключения таблицы стилей этому атрибуту присваивается значение stylesheet;

• type – при подключении CSS задается значение text/css;

• media – задает тип устройства, для которого применяется подключаемая таблица стилей (эта замечательная возможность будет рассмотрена далее).

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

Встроенные таблицы стилей задаются внутри HTML элемента STYLE (между парными тегами ), помещенного в разделе HEAD документа. При создании встроенных таблиц стилей нужно указывать значение атрибута type элемента STYLE, также можно задать значение атрибута media. Назначение этих атрибутов в этом случае совпадает с назначением одноименных атрибутов HTML элемента LINK.

Кроме подключения внешних таблиц стилей, ссылаясь на них при помощи элемента LINK, можно подключать внешние таблицы стилей и из самих таблиц стилей. Это позволяет существенно сократить объем таблиц стилей, если в них предполагается наличие одинаковых фрагментов. Подключение внешней таблицы выполняется при помощи ключевого слова @import. Правило CSS в таком случае имеет следующий формат:

@import url(«URI внешней таблицы стилей»);

Пример подключения внешней CSS может выглядеть так:

@import url(«external_stylesheer.css»); /*подключение таблицы стилей*/

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

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 8977 — | 7233 — или читать все.

91.105.232.77 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

SSI и общий стиль

Дурным стилем сайтостроительства считается наличие в документе гиперссылок на этот же документ. Ссылаться на самого себя неразумно — пользователь от нажатия на гиперссылку ожидает, что загрузится другая страница, а также такого рода ссылки доставляют большие неудобства пользователям каналов с низкой пропускной способностью. Такие ссылки на себя часто получаются при включении колонтитулов. Для того чтобы избежать таких ссылок, оформляйте каждый пункт меню в колонтитулах следующим образом: Данный SSI-код используется на сайте http://my-elecon.ru.

Другой не менее важный SSI-код применяется для организации версии страниц для печати. Версия страницы сайта для печати отличается от обычной страницы отсутствием колонститулов, навигации, баннеров и прочей лишней информации. Рассмотрим, как организована версия для печати на примере сайта http://alavus.ru.

При нажатии на гиперссылку «версия для печати» страница, на которой находится пользователь, перегружается. Но поскольку в строке запроса присутствует параметр for_printing, то лишний HTML-код не включается на страницу. Обратите внимание . Это строка запроса CGI-параметров. В обычном случае, у вас никаких параметров, кроме for_printing нет, но когда появляются на сайте CGI-модули, то появляются и дополнительные параметры. Забегая вперед расскажу, как делать «Версию для печати» В CGI-программе. Пока веб-сервер Apache не может обрабатывать на SSI-директивы вывод CGI-программ. Такую возможность обещают в новых версиях Apache. У CGI-программистов есть два пути либо самим разобрать SSI-директивы в файле head.inc либо, что значительно проще, создать ручками файл phead.inc и подключать его в CGI-программах.

Условные операторы записываются следующим образом: Для примера приведу SSI-код для вывода времени последней модификации документа в приемлемом виде. Как вы уже видели, команда выдает совершенно не приемлемую строчку — Monday, 26-Feb-2001 19:25:58 Московское время (зима), для размещения ее на солидном веб-сайте. Нам бы хотелось получить что-нибудь, вроде 26 Февраля 2001 года. Для этого существует команда config с параметром timefmt, которая задает формат вывода даты. Например, в нашем случае нам требуется следующий вариант , тогда результат будет 26 February 2001. Но это пока все равно не то, что бы нам хотелось. Для определения месяца мы воспользуемся условными операторами. Вот, как будет выглядеть этот код: Соответственно, чтобы получить дату в формате 26 Февраля 2001.
Вот полный список значение параметра timefmt:

Формат Описание Пример
%a Аббревиатура названия дня недели Sun
%A Полное название дня недели Sunday
%b Аббревиатура названия месяца Jan
%B Полное название месяца January
%d День месяца 01 (не 1)
%D Дата в формате «%m/%d/%y» 01/31/90
%e День месяца 1
%H Часы в 24-часовом формате 13
%I Часы в 12-часовом формате 01
%j День года 235
%m Номер месяца 01
%M Минуты 03
%p AM|PM AM
%r Время в формате «%I:%M:%S %p» 11:35:46 PM
%S Секунды 34
%s Время в секундах с 01.01.1970 957228726
%T Время в формате «%H:%M:%S» 14:05:34
%U Неделя года 49
%w Номер дня недели 5
%y Год в формате ГГ 95
%Y Год в формате ГГГГ 1995
%Z Временная зона MSK

Далее приведены несколько полезных SSI-директив. Допустим, вы распространяете какие-либо утилиты и выкладываете ссылки на файлы для скачивания. Например, такие ссылки вы найдете на сайте http://www.oxygensoftware.com. Для удобства пользователей неплохо было бы указать размер файла и иногда, дату его последней модификации. Каждый раз после выкладывания на сервер новых версий файла, модифицировать самому ручками все размеры и даты долго и мучительно. Server Side Includes приходят на помощь.

Прозрачный gif-файл
Дата модификации:
Размер: байта
Если у вас файлы больших размеров, то информацию лучше выводить в килобайтах. Для этого установите формат вывода размера файла следующим образом.
При возникновение какой-либо ошибки, например, при попытки включить в HTML-документ файл, которого не существует веб-сервер выдаст следующее сообщение:


Сообщение не слишком информативно и пугает пользователя, не так ли? Давайте изменим сообщение об ошибке следующей SSI-директивой
Теперь сообщение об ошибке вылядит так:

Технология SSI

Технология SSI (Server Side Includes), разработанная компанией Questar Microsystems, позволяет реализовать в обыкновенном HTML-документе такие интерактивные возможности как формирование различных запросов и обращение к базам данных, отправка электронной почты со страниц веб-сайта, задействование CGI-сценариев, предназначенных для обработки данных, вводимых пользователями в формы.

Команды SSI

С помощью основных команд данной технологии можно создать довольно интересные эффекты, например, внедрять в страницу дополнительный html-документ.

За это отвечает команда #include.

Введите код или .

В первом случае аргумент file показывает, что внедряемый объект находится в той же папке, что и основная страница. Если задан аргумент virtual, внедряемый объект может находиться в любом каталоге, но при этом очень важно правильно написать его адрес.

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

Формат вывода даты и времени

Выражение «число/месяц/год» является значением аргумента timefmt. Чтобы правильно задать дату и время необходимо знать специфические обозначения:

%a, %b — сокращенные названия дней недели и месяцев
%A, %B — полные названия дней и месяцев
%d — день месяца (дата)
%H, %I — 24-часовой и 12-часовой форматы времени
%j — порядковый номер дня года
%m — порядковый номер месяца
%M — минута
%S — секунда
%U — порядковый номер недели года
%W — порядковый номер дня недели
%y, %Y — год в виде двух или четырех цифр

Сервисное сообщение

, их назначение и параметры, а затем немного попрактиковаться в написании кодов.

SSI и общий стиль

Представленная ниже страница, лишь часть огромного сайта посвященного различной компьютерной документации, на сайте собрано более 800 мб информации. Если Вы не нашли в этой статье, то что Вы ищите попробуте посмотреть здесь, cпросить на форуме или поискать необходимую Вам информацию в нашем каталоге ссылок сайтов компьтерной тематики.

Если же Вы хотите приобрести бумажную копию представленных здесь
материалов, обращайтесь в наш книжный магазин.

С уважением,
команда разработчиков eManual.ru

Описание SSI на русском языке.

Описание SSI на русском языке
Server Side Includes Структура команд SSI+ Основные команды SSI+ Примеры использования SSI+ Команда echo Команда include Команда fsize Команда flastmod Команда exec Команда if Команда goto Команда label Команда break

Технология создания активных документов SSI+ — Server Side Includes предложена фирмой Questar Microsystems. Эту технологию поддерживают такие WWW сервера как Apache , Netscape, Spry Web и Microsoft Internet Information Server.

Поддержка этой технологии связанна с специальной конфигурацией WWW сервера и протокола HTTP.

Технология Server side includes (SSI) позволяет использовать в HTML документах такие возможности как: опрос текущего времени и даты, условного выполнения форматирования в зависимости от логических сравнений, формировать запросы или модифицировать базы данных, посылать электронную почту, вызывать программы или CGI scripts.

Возможности технологии SSI+ задают механизм совместного использования языка HTML и программ CGI Script.

Формат команды SSI+:

‘ »

где: ‘ одна из следующих команд: ‘echo’, ‘include’,
‘fsize’, ‘flastmod’, ‘exec’, ‘config’, ‘odbc’, ’email’, ‘if’,
‘goto’, ‘label’, ‘break’ параметры (атрибуты) команды, значения которых зависят от командой . Формат задания переменных такой же как и формат задания атрибутов для команд языка HTML: ‘=’ ‘»‘ variable data ‘»‘ ‘=’ ‘»‘ variable data2 ‘»‘
‘=’ ‘»‘ variable datan ‘»‘ » конец обращения к SSI команде. Отметим, что в отличии от обычных команд языка HTML для команд SSI+ задание значений переменных-атрибутов должно обязательно заключаться в «двойные кавычки» («) (для языка HTML значения атрибутов заключаются в двойные кавычки только в случае когда они содержат служебные символы или пробелы).
Заметим, что если сервер и просмотрщик не поддерживают режима работы SSI, то команды SSI воспринимаются просто как коментарии и не выводятся на экран просмотрщика.

Чать команд SSI имеют подкоманды, управляющие их работой, например, команды if, odbc, email, и exec. Формат подкоманды следующий:

‘&&’ ‘&&’

где: ‘&&’ зарезерированный символ для обозначения начала и конца подкоманды. имя подкоманды. Замечание о SSI документах
SSI+ документ по умолчанию имет префикс (расширение) ‘.SHT’ или ‘.SHTM’ для их отличия от обычных HTML документов, которые имеют префикс ‘.HTML’ или .HTM.
Хотя при конфигурации сервера можно обявить все документы как SSI, но это снижает его эффективность.

Основные команды SSI+

‘echo’ Включение значений CGI переменых в HTML документ.
‘include’ Включение файла в HTML документ.
‘fsize’ Включение размера файла в HTML документ.
‘flastmod’ Включение даты последней модификации файла в HTML документ.
‘exec’ Выполнение внешнего исполняемого файла (CGI программы). Выходной поток данных (стандартный вывод) этой программы включается в документ.
‘config’ Установка параметров для SSI+ команд.
‘odbc’ Оращение к внешней ODBC СУБД.
’email’ Отправка электронной почты или представление формы.
‘if’ Условный оператор, управляющий выполнением других команд SSI и вывода документа.
‘goto’ Оператор перехода на определенную SSI метку (‘label’).
‘label’ Метка в документе.
‘break’ Остановка вывода документа.

Включение значений переменных окружения в HTML документ. Команда echo имеет только одну переменную var
Пример:

Вы используете просмотрщик

Если данный документ просматривается через просмотрщик MS Internet Explorer 3.0 for Windows 95, то эта команда даст следующий результат

Вы используете просмотрщик Mozilla/2.0 (compatible; MSIE 3.0; Windows 95)

А для просмотрщика, через который вы сейчас читаете этот текст, получим


Вы используете просмотрщик Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)

WWW сервер, соторый понимает технологию SSI, как правило, использует описанные ниже переменные окружения. Кроме того, если на сервере разрешено выполнение испольнаяемых модулей (CGI Script программы), то в документе могут быть использованы и переменные окружения CGI. «DOCUMENT_NAME» локальное имя документа. «DOCUMENT_URI» локальный путь к документу от базовой директории WWW сервера. «QUERY_STRING_UNESCAPED» Строка, полученная от клиента, содежащая все shell-special characters escaped with % «DATE_LOCAL» Текущая локальная дата и время. «DATE_GMT» Дата и время по Гринвичу (Greenwich). «LAST_MODIFIED» Дата последней модификации текущего документа. «REMOTE_ADDR» IP адрес удаленного клиента. «QUERY_STRING» Строка, полученная от клиента. «SERVER_SOFTWARE» Имя HTTP server software. «SERVER_NAME» Имя компьютера, на котором работает WWW сервер. «GATEWAY_INTERFACE» Имя и версия Common Gateway Interface served WWW (HTTP) сервера (name/version). «SERVER_PROTOCOL» Имя и версия HTTP сервера (name/version). «SERVER_PORT» IP порт WWW (HTTP) сервера. «REQUEST_METHOD» Тип метода запроса к серверу. «PATH_INFO» Виртуальный путь, указанный в запросе (путь от базовой диретории WWW сервера). «PATH_TRANSLATED» Полный путь, указанный в запросе. «SCRIPT_NAME» Имя программы для выполнения в CGI запросе. «REMOTE_HOST» Имя компьютера удаленного клиента. «AUTH_TYPE» Переменная для определения авторизованного метода доступа к серверу (authentication method). «REMOTE_USER» Имя пользователя для авторизованного метода доступа. «REMOTE_IDENT» Имя удаленного клиета, используемое для идентификации пользователя, согласно спецификации RFC931. «CONTENT_TYPE» Тип передачи данных от клиета по методам POST или PUT. «CONTENT_LENGTH» Длина в байтах переданных данных по методам POST или PUT. «HTTP_ACCEPT» Список, разделенный запятыми, MIME типов, понимаемых просмотрщиком клиента. «HTTP_USER_AGENT» Имя просмотрщика клиента (browser software). «HTTP_REFERER» ULR адрес HTML документа из которого сделан запрос клиентом. «HTTP_FROM» Имя (подобное имени Е-mail address) удаленного клиента. «HTTP_FORWARDED» Имя Proxy Server, через который общается клиент. «ACCEPT_LANGUGE» Список языков доступных для копьютера клиента. «HTTP_COOKIE» Содержение ответа клиента на запрос от сервера (см. ниже).

По команде ‘include’ на место этой команды подставляется содержимое файла, на который она указывает.

Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер. Пример:

Далее между двумя горизонтальными чертами следут вставленный в документ файл include.txt из текущей директории. Начало вставки
Данный текст вставлен в документ из файла include.txt
Конец вставки

fsize Вывод размера файла в документ.
Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер. Пример:

Выдача размера файла, который вы в данный момент читаете:
Размер файла ssi.shtml = 35k

Формат выдачи размера соответсвует установке сервера и может быть изменен командой config.

Команда flastmod включает дату последней модификациии файла.
Команда имеет два параметра-переменных: virtual для задания относительного адреса файла на WWW сервере. file для задания абсолютного адреса файла на компьютере, на которм установлен WWW сервер.

Пример:

Включение даты последней модификации файла ‘ssi.shtml’ в документ:
Дата последней модификации файла ssi.shtml = Monday, 10-Mar-1997 00:00:00 NS.

Формат выдачи даты и времени соответсвует установке сервера и может быть изменен командой config.

Выполнене внешних программ и программ CGI Script.

Парамеры: ‘cmd‘ задане командной строки параметров для выполнения UNIX shell исполняемых программ. Формат командной строки:

где: полное имя исполняемой программы или команды, и список аргументов, посылаемых исполняемой программе в командной строке.
Замечание: на сервере должны быть заданы пути к исполняемой программе в переменной окружения ‘PATH’.
В случае отсутвия пути программу можно запустить, используя shell или CGI Script. Стандартный вывод программы направляется в HTML документ. Вывод может быть модифицирован командой ‘config..cmdecho’. ‘cgi‘ вызов программы CGI Script. Вызываемая программа должна находится в директории CGI-BIN WWW сервера или иметь префикс, например, .cgi, который задан для Shell программ в конфигурационном файле сервера. Формат команды:

где полное имя программы CGI Script.
Стандартный вывод программы подставляется в документ.

Команда config модифицирует вывод в HTML документ.

Парамеры-атрибуты команды: ‘errmsg‘ The errmsg variable is used to set the error message that gets printed when the SSI+ engine encounters a parsing error or unavailable required data. This variable is retained for compatability with standard SSI, you may wish to use the onerr variable instead. ‘timefmt‘ Установка формата выдачи времемени в команде echo..time SSI+ token output. ‘sizefmt‘ The sizefmt variable is used to set the format ofecho..size SSI+ token output. ‘cmdecho‘ The cmdecho variable is used to set the output option of subsequent exec..cmd tokens. The format is ‘cmdecho’='» «‘where is either ‘ON‘ or ‘OFF‘. When the SSI+ parsing engine encounters an exec..cmd token it executes the command. If the command returns output then that output may be echoed into the HTML document or it may be ignored. The format of the data echoed is dependent on the presence or absence of config..cmdprefix and config..cmdpostfix tokens in the document. In the absence of config..cmdprefix and config..cmdpostfix tokens the output will be echoed exactly as returned with no formatting and no special character interpretation. In the presence of config..cmdprefix and/or config..cmdpostfix tokens the output will be formatted and interpreted. To activate echoing set cmdecho to ‘ON’ otherwise set it to ‘OFF’. The default is ‘OFF’. ‘cmdprefix‘ The cmdprefix variable is used to set the string prefixed to each line out output from subsequent exec..cmd tokens. The format is ‘cmdprefix=»‘ «‘where is any character string and/or HTML format tags. When the SSI+ parsing engine encounters an exec..cmdtoken it executes the command. If the command returns output then that output may be echoed into the HTML document or it maybe ignored. If the output is echoed (see ‘cmdecho’ above),then each line output from the executable will be prefixed with the string supplied before being echoed into the HTML document. ‘cmdpostfix‘ The cmdpostfix variable is used to set the string appended to the end of each line out output from subsequent exec..cmd tokens. The format is ‘cmdpostfix=»‘ «‘where is any character string and/or HTML format tags. When the SSI+ parsing engine encounters an exec..cmdtoken it executes the command. If the command returns output then that output may be echoed into the HTML document or it maybe ignored. If the output is echoed (see ‘cmdecho’ above),then each line output from the executable will be appended with the string supplied before being echoed into the HTML document. ‘onerr‘ The onerr variable is used to set the action to be taken when the SSI+ engine encounters an error. The format is ‘onerr=»‘»‘where is one of the following tags. ‘goto‘ causes a jump to a label token (see below). The format of the goto tag is: ‘goto’ where is the name of a label defined in a subsequent label tag (see below). ‘print‘ causes text to be printed. The format of the print tag is: ‘print «‘

is any HTML text or tag. ‘error‘ causes the current config..error message to be printed. ‘break‘ causes termination of the HTML document transmission to the client. ‘errorbreak‘ causes the current config..error message to be printed, and then causes termination of the HTML document transmission to the client. ‘printbreak‘ causes text to be printed, and then causes termination of the HTML document transmission to the client. The format of the printbreak tag is the same as the format of the print tag.

Example. The following token on an HTML document sets the SSI+ error message to ‘*** ERROR ***’. From this point on down when an error occurs in the SSI+ parsing engine the message ‘*** ERROR ***’will be inserted into the HTML document at the location of the offending SSI+ statement.

Example. The following token on an HTML document sets the SSI+ error action to print a message and terminate the document. From this point on down when an error occurs in the SSI+ parsing engine the message will be inserted into the HTML document at the location of the offending SSI+ statement, and the document will be terminated

Example. Suppose you wish to create an HTML document that performs a ‘PING’ operation on address ‘204.96.64.171’ and then echo the results back to the client browser, with each line echoed as an element in an unnumbered list. Insert the following lines into your HTML document: When the document is accessed by a remote browser the output would look something like this: Pinging 204.96.64.171 with 32 bytes of data: Reply from 204.96.64.171: bytes=32 time «‘ where; is any string and is reserved for future use.

The connect variable is used to connect to a pre-existing odbc data source, to allow for subsequent statement tag operations on that data source. The format of the connect variable is ‘connect=»‘ ‘,’ ‘,’

‘»‘where ; is the name odbc data source as defined on the local system in the odbc configuration utility. CAUTION! the account under which the server is run must be granted permission to access the data source. is the name which to log into the data source.

is the password with which to access the data source.

Example. To connect to a data source called ‘odbcsht’ as user ‘dufus’ and password ‘dorkboy’, one would use the following statement: .

The statement variable is used to submit a Transact SQL statement to the odbc data source. The format of a statement variable is as follows: ‘statement=»‘ ‘»‘,where: is any Transact SQL statement as defined in odbc and SQL reference text and help files.

Example. Suppose one wanted to query the ‘CUSTOMERS’ table from the above connected ‘odbcsht’ database to return all rows and display each row on a separate line. One may use the following sequence of statements: Connect to the database with a connect token as described above. Setup the output format with a statement token as described below. Execute the query: Each row of the database will the be inserted into the HTML page per the format statement as demonstrated below.

The format variable is used to prov >'»‘where; is a standard C language printf format string with the restriction of only allowing string (%s) insertions. The user is referred to any C language text for a description of this format. The number of instances of %s must be equal to the number of fields selected in a the subsequent SQL SELECT statement token.

Example. Suppose one wanted to query the ‘CUSTOMERS’ table from the above connected ‘odbcsht’ database to display the columns ‘name’, ‘age’, and ‘viscosity’ with each row on a separate line. One may use the following sequence of statements: Connect to the database with a connect token as described above. Setup the output format: . Execute the query with a statement token as described above. Each row of the database will the be inserted into the HTML page per the format statement. For example if the database has 3 rows the HTML output would look something like this: Customer’s name is Conan, and he is 29 years old, he prefers a motor oil with SPF 15 viscosity Customer’s name is Kevin, and he is 45 years old, he prefers a motor oil with SPF 30 viscosity Customer’s name is Alan, and he is 43 years old, he prefers a motor oil with SPF 50 viscosity

’email’
Отправка элктронной почты.
Пример:

При отработке данного примера будет отправлено электроное письмо (e-mail), содержание которого задано атрибутом message, по адресу, определенному атрибутом toaddress, если данный адрес и host, заданный атрибутом tohost (данный атрибут может отсутсвовать), реально существует.

The email tag prov >'»‘ where := ‘ON’ to enable debugging := ‘OFF’ to disable debugging, this is the default action if the debug variable is omitted. ‘fromhost’ defines the name of the smtp host sending the mail. ‘tohost’ defines the name of the smtp host the mail will be sent to. ‘fromaddress’ defines the email address from party. ‘toaddress’ defines the email address of the recipient party. ‘message’ defines the message body to be sent. ‘subject’ defines the subject field of the message to be sent. ‘sender’ defines the email address sending party. ‘replyto’ defines the email address to which replies should be sent. ‘cc’ defines the courtesy copy email addresses. ‘inreplyto’ defines the inreplyto field of the message to be sent. ‘id’ defines the id field of the message to be sent.

Example. The following document send an email with debugging enabled. Supposewe have a form with datum : [First, Last, Middle Initial, Company,Address1, Address2, City, State, Zip, Country, Phone, Fax, Request,Urgency, ReplyMethod; Email, Subject, Message] we may post thatform to an HTML document containing the following fragment tosend an email.


The if tag provides for conditional execution of SSI operations, and conditional printing of HTML text, based on logical comparisons. The format of the if tag is :

where: is the first operand of a logical comparison statement is the second operand of a logical comparison statement is the logical comparison method [‘==’, ‘!=’,’ ‘, ‘! ‘] is the action to take if the logical comparison evaluates to TRUE [‘goto’, ‘print’, ‘error’, ‘break’, ‘errorbreak’, ‘printbreak’]

The operands may be any string or number (integer or floating point). In the event that both operands are numbers the comparison will be based on the value of the numbers. In the event that one or both of the operands and not numbers, the comparison will be based on the alphabetic order of the operands.

The special case of the NULL operand is defined by two quotes with no characters between them. The NULL operand may used to check for the existence of form data from the remote client (see example below). The operator defines what kind of comparison is performed on the operands: ‘==’ The equalto operator evaluates to TRUE if the operands are equal to each other. ‘!=’ The notequalto operator evaluates to TRUE if the operands are not equal to each other. ‘ ‘ The greaterthan operator evaluates to TRUE if operand1 is greater than operand2 ‘! ‘ The notgreaterthan operator evaluates to TRUE if operand1 is not greater than operand2 ‘hasstring’ The hasstring operator returns TRUE is the text string in operand2 is found in the operand1 string.

In the event that the logical comparison evaluates to FALSE, nothing happens, If the logical comparison evaluates to TRUE then one of the following operations may be performed: ‘goto’ causes a jump to a label token (see below).The format of the goto tag is: ‘goto’ where is the name of a label defined in a subsequent label tag (see below). ‘print’ causes text to be printed. The format of the print tag is: ‘print’

is any HTML text or tag. ‘error’ causes the current config..error message to be printed. ‘break’ causes termination of the HTML document transmission to the client. ‘errorbreak’ causes the current config..error message to be printed, and then causes termination of the HTML document transmission to the client. ‘printbreak’ causes text to be printed, and then causes termination of the HTML document transmission to the client. The format of the printbreak tag is the same as the format of the print tag.

Example. The following document fragment compares two numbers, if the operands are not equal then a goto will jump to a label.

This should not print

This should print

Example. The following document fragment demonstrates conditional execution based on data delivered from an HTML form. Suppose we have two form datum called ‘formdata1’ and ‘formdata2’ and we wish to compare them. The following document fragment compares the two operands, if the operands are equal then a goto will jump to a label. Otherwise the next line will print and the document will terminate on a break token (see below).

The operands are not equal.

operands are equal.

Example. The following document fragment prints two different statements depending on whether or not the client agent is NCSA Mosaic.

You are not using Mosaic

You are using Mosaic

Example. Suppose we have a form with amongst other things a field named «BOO» and we wish to make sure that the remote client user enterted data into the «BOO» field before submitting the form. The following document fragment checks for the presence of data in the «BOO» field, if data exists then nothing happens, if data does not exist then a message will be displayed and the document will terminate.

Команда goto оператор перехода на маетку label.
Формат команды:

«

где имя метки, определенное командой label.

Пример.

This line will not print.

This line will print.

Замечание: Между сиволами «

где строка из не более чем 51 символа без пробелов, идентиифицирующая место в документе.

Задание метки не влияет на форматирование документа.

SSI и общий стиль

В этой статье я приблизительно расскажу о том как практически использовать технологию SSI.
Естественно это не 100% вариант, вариации возможны, одна из главных задач — понять «а зачем это нужно». Нужно учесть:
Прежде всего поддерживает ли Ваш сервер технологию SSI
Что дочерними файлами являются SHTML странички, которые в свою очередь тоже обрабатываются на наличие SSI.
Что «переменных окружения» («environment variables») типа: DO*****ENT_NAME в дочерних документах показывает родительские параметры
Что переменные передаются дочерним и следующим по выполнению документам кроме — указания ошибок
Что пути к скриптам в дочерних документах идут относительно дочерних документов
Что пути к графике при выводе идут относительно родительского документа.

Структура странички выглядит приблизительно вот так:
Родитель news.shtml

Переменные SSI
Имя страницы
Мэтатеги
Стили
JavaScript

Верх сайта
Табличка — структура сайта, для примера разбита на 3 частей.

SSI path/left.shtml SSI path/start.shtml SSI path/right.shtml
Низ сайта

Нужно учесть:
Что и верх и низ сайта (include virtual) не находятся в общей таблице.
Так быстрее будет отображаться информация на экране.

Переменные SSI

В этой части создаются переменные которые используются по всему сайту;

    одни для удобства,
    другие для удобного и быстрого изменения дизайна,
    третие для возможности демонстрации навигации и ведения статистики
    .

Грамматика: #set var=*** value=***
Присваивает новое значение переменной. Например:

Переменные:
Название странички —
SSI-команда — Выводится при какой то ошибке SSI
URL странички — Обычно это полезно для длинных путей
Цвет бекграунда — Значок # желательно не ставить
Цвет заливки 1 —
Цвет заливки 2 —
Цвет заливки 3 —
Цвет титров 1 —
Цвет титров 2 —
Цвет титров 3 —
Заменив один из параметров «цвета» у вас поменяется его значение во всех дочерних документах
Для большей наглядности мы перенесем наши переменные на несколько страниц, чтобы у каждой страницы был свой стиль.
На родителе мы оставляем: SSI-команду ошибки и URL странички, но это после такого скрипта


В каждом из файлов: varssi.shtml, varnew.shtml и var.shtml вписаны переменные «цвета» с различными параметрами
Как это работает: Если в строке после названия файла будет часть слова с символами «ssi» то считыватся будет страничка varssi.shtml с своими параметрами «цвета»
Соответственно при символах «new» страничка — varnew.shtml. Если ничего подобного не находится — то страничка var.shtml.
Те переменные которые должны быть разными для разных страничек — лучше вписывать в файлы var***.shtml, а те которые раз и на всегда в var.shtml

  • Имя страницы
    Проще написать
    Но можно и так
    Переменная NamePage будет использоваться еще много раз, поэтому поменяв переменную в установках «set var=» она меняется автоматически везде.

  • Мэтатеги
    Создав один раз страничку mt.shtml со всеми метатэгами Вы избавляетесь от их написания для каждой странички, а также их редактирования в каждой страничке в отдельности.
    Нужно учесть что в страничку вы пишете только метатэги без например :

    Некоторые сразу возмутятся что мой FrontPage перегенерирует (создаст заново) все странички с моими изменениями. Да но после этого вам нежно закачать все странички на сервер, а если их 200, а закачав Вы поняли что не все дописали или что не так, и что все сначала. А здесь одну страничку поменяли и для все одинаково.
    Теперь другие возмутятся, что не бывает так что у всех страничках одинаковые метатэги должны быть. Да я соглашусь, что некоторые странички должны иметь другие мэтатеги. Как это решить — например:
    Содержимое форума не надо кэшировать :

    Как это работает: Если в имени файла будет строка «forum», то впишется строка с параметром «no-cache», для всех остальных строка с параметром «Public».


    Стили

    Как и в предыдущем варианте создается файл styles.shtml без html, head, body.
    Внутри может быть:
    Простая ссылка —
    Или выбор в зависимости от браузера

    Как это работает: В зависимости от того что находится в переменной («environment variables») $HTTP_USER_AGENT какой тип браузера у Вас и выводится от сервера к Вам только та часть, которая соответствует браузеру. Ну и если браузер не опредияется то выводится опредиленный набор стиля что после строки .
    Это все конечно размером в байты, но нужно учесть что это все находится в отдельном файле styles.shtml который легко редактировать и работает для всех страниц сайта.


    JavaScript

    Как и в предыдущих вариантах создается файл js.shtml без html, head, body.
    Внутри может быть:
    Простая ссылка —
    Или выбор в зависимости от страницы

    То есть скрипт будет присутствовать на всех страницах кроме тех в которых в имени будет присутствовать слово forum


    Верх сайта

    Как и в предыдущих вариантах создается файл top.shtml без html, head, body.
    Внутри может быть целый комплекс дизайнерского решения, поэтому мы ограничимся большим названием и выводом банера :

    » style=»font-size: 22px;text-align: center;»>

    То есть на место color (цвет фонта) будет вписана переменная COLORtitrA которую мы определили еще в родительском файле news.shtml и var.shtml там же и переменная NamePage с названием страницы.
    Вернемся обратно к файлу top.shtml, и сделаем вывод банера

    Вот оно чудо, как часто Вы меняете банерщиков например по обмену, плохой CTR — меняйте. Естественно в одном файле — baners.shtml
    хотите свою банерную систему — пожалуйста:

    Можно что ни буть и по сложнее

    9″


    То есть понятно после 9 часов дня показываем банера с сайта по JavaScript, а с 0 часов свой внутрений скрипт «рандомайзе показ»


    HTML Таблицы

    left.shtml
    Левая часть сайта здесь мы выводим табличку, с линками по всему сайту. На страничке используются заготовленные переменные цветов и что важно полный адрес линков с переменной WWW

      Цвет бекграунда — COLORBCG
      Цвет заливки 1 — COLORfonA
      Цвет заливки 1 — COLORfonB
      Цвет титров 1 — COLORtitrA
      Цвет титров 2 — COLORtitrB

    «>
    /news.shtml»>
    «>news


    А в конце не помешает SSI линк на страничку left_baner.shtml, в которой Ваш набор счетчиков.

    start.shtml
    Здесь может быть большой набор скриптов но мы ограничимся новостийными выводами с вариациями.
    По умолчанию стартует скрипт новостийных заглавий, а при нажатии на заглавие вы попадаете на вывод новостийного блока или конкретной старой новости

    В первом «инклюде» если Вы заметили мы передаем наши переменные среды SSI в среду CGI, то есть наши цветовые переменные передаются в CGI скрипт.
    Вот здесь как раз важно чтобы в переменной не было знака # а то ничего не получится

    Что такое SSI

    Что такое ssi и с чем его едят?

    Server Side Include (SSI).Эта вещь в WWW-дизайне чрезвычайно нужная и полезная, так как во много раз облегчает работу по созданию и поддержке Web-сайта.

    Server Side Include с английского переводится как «включаемый на стороне сервера».Эта технология позволяет Web-серверу включать в текст ваших HTML-страниц любой другой текст: содержимое текстовых файлов или, например, результат работы CGI-скриптов (который, как известно, обычно оформляется в виде HTML-текста). Происходит это «включение» непосредственно перед передачей текста HTML-страницы броузеру пользователя, так что посетитель страницы даже не догадывается об этой серверной «возне».

    Какова же польза от SSI? Польза огромна. Предположим, на каждой странице своего сайта вы поместили список доступных разделов сайта. Творение ваше, как и положено, постоянно развивается, и вот вы решили добавить еще один раздел. Что же теперь, открывать все страницы в редакторе и тупо добавлять в текст одно и то же? Советский пионер (любящий трудности) поступил бы именно так, а умный Web-дизайнер станет использовать SSI. Для этого достаточно создать отдельный текстовый файл (например, menu.html) и занести туда HTML-код списка разделов. Непосредственно же в страницы сайта, в том месте, где должен находиться список разделов, нужно вставить следующую инструкцию:
    Обратие внимание на то, что нужно дословно следовать синтаксису директив SSI. Забудете, например, поставить два тире в конце директивы — и сервер ей буквально «подавится», прекратив анализ страницы.

    Когда кто-либо захочет просмотреть эту страницу, сервер заменит инструкцию содержимым файла menu.html. Если вы измените файл menu.html, то все страницы, где вы использовали , обновятся автоматически. Обратите внимание: в HTML-файлах, лежащих на диске Web-сервера, ничего не меняется — сервер производит вставку текста «на лету», перед тем, как отправить WWW-страницу в броузер посетителя.

    Вместо имени обычного текстового файла в инструкции можно указывать имя CGI-скрипта. В этом случае сервер сначала выполнит CGI-скрипт, а потом вставит результат работы скрипта в текст WWW-страницы. Это означает, что вы сможете реализовать такие вещи как, например, текстовый счетчик посещений или отображение на странице случайно выбранной фразы.

    Есть еще одно косвенное преимущество применения SSI: из-за использования шаблонов типа вышеупомянутого menu.html WWW-страницы будут меньшими по объему, и вы сможете сэкономить немало времени, перписывая файлы на Web-сервер по FTP.

    Но не все так прекрасно. Например, вам не удастся поэксперементировать с механизмом SSI на машине, на которой не установлен Web-сервер. Функционирование SSI обеспечивается именно сервером, поэтому при просмотре HTML-файлов с локального жесткого диска (например, С:), ваш броузер проигнорирует директивы SSI — ведь они, с точки зрения HTML, являются обычными комментариями.

    Кроме того, сервер должен быть настроен для поддержки SSI. И попадаются такие алчные провайдеры, которые начинают требовать деньги за такую настройку. Лучше всего не пользоваться их услугами, так как поддержка SSI включается добавлением пары строк в файлы конфигурации Web-сервера Apache и еще кое-какими нехитрыми действиями администратора, за что брать деньги, на мой взгляд, грешно.

    К счастью, таких провайдеров не очень много. Большинство предлагают поддержку SSI по умолчанию. Но учтите, что на бесплатных серверах, таких, как Хоом, Tripod, Geocities, Chat.ru SSI не разрешается. Тут уж ничего поделать нельзя 🙁

    Кстати о настройках сервера. При включении поддержки SSI сервер начинает просматривать все страницы на предмет наличия в них директив SSI, что увеличивает нагрузку на сервер. Поэтому очень часто системные администраторы включают SSI только для файлов с определенным расширением — обычно .shtml. Так что если в файлах .html SSI не работает, попробуйте переименовать их в .shtml, а лучше спросите об этом системного администратора 🙂

    В общем, SSI — действительно полезный инструмент, игнорировать который, если вам дорого свое время (и деньги), не стоит.

    Что такое SSI и с чем его едят II

    Этой статьей хотелось бы открыть новый подраздел на DVK URL CLUB. «Ваша колонка» призвана собрать материалы и мнения наших посетителей. Первая статья написана нашим модератором раздела «Перекур» по мотивам одного из топиков на «Перекуре», в которой Александр поясняет некоторые особеннсти использования директив SSI. Так же автор хочет напомнить вам, что инструкциями SSI можно пользоваться только на том сервере, который их поддерживает. Большинство бесплатных хостингов в сети не выделяется такой особенностью, а попросту, не поддерживают SSI.

    Преамбула
    Суть и простейшие приемы в SSI уже были описаны на данном сайте. Как правило, на развалах статей по мастерингу редко встречается что-то кроме описание единственной функции «include» в самом простом варианте.

    Однако SSI смело можно назвать языком программирования, пусть не полноценным, но языком. SSI позволяет определять условия и переменные, а также умеет работать с так называемыми переменными окружения, одной из которых является $QUERY_STRING, активно использующаяся при программировании на Perl, PHP, и других языках создания серверных скриптов. Здесь-то и начинается самое интересное.

    Суть явления или результат который имеет Webmaster.
    По большому счету речь сейчас пойдет о шаблонах. При очередном обновлении человеку обслуживающему сайт будет достаточно добавить ссылку на новую страницу в оглавлении и создать файл с обычным форматированным текстом без какой бы то ни было разметки. Согласитесь, что это весьма удобно 🙂

    Мастер Йода рекомендует:  В помощь веб-разработчику полезные проекты и инструменты для работы с Chrome DevTools
    Добавить комментарий