SSI вставки на стороне сервера
SSI вставки на стороне сервера - малоизвестый язык для динамической «сборки» веб-страниц на сервере реализованы в веб-сервере Apache при помощи модуля mod_include.
Шаблонизатор SSI - HTML5-SSI-RULLAN
Документация Apache по mod_include - смотреть
(SSI расшифровывается как Server Side Include. SSI) :bully: Его огромный плюс - Это моментальная скорость обработки сервером!!!
:what: если выдает ошибку [an error occurred while processing this directive] то нужно в начало дочерного файла в котором проимходит ошибка - добавить
<!--#config errmsg=""-->
Включение механизма Server-Side Includes
Любой документ, у которого будет установлен обработчик "server-parsed" будет сканироваться этим модулем, если включена опция "Includes". Если вы имеете малое количество документов с SSI, то лучше всего в файле httpd.conf указать следующее:
AddType text/html .shtml
AddHandler server-parsed .shtml
и устанавливать у таких файлов расширение .shtml. Если же все или почти все документы будут иметь директивы SSI, то лучше в файле конфигурации указать:
AddHandler server-parsed .html
И не забудьте включить в опции директории узла опцию Includes:
Options +Includes
Конечно в этой строке могут быть и другие нужные вам опции.
:crying: Но как правило достаточно и внести правки в .htaccess:
Options +Includes
AddType text/html .html .shtml
AddHandler server-parsed .html .htm
<!--#set var="IMG" value="/0-img/diz/kozak-4.png"-->
<!--#echo var="IMG"-->
<link rel="canonical" href="https://<!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI" -->">
<!--#include virtual="/0-res/SSI/hed-only-rykami.htm"-->
Что может SSI?
- позволяет включать в текст страницы другие SSI-страницы,
- вызывать внешние CGI-скрипты,
- реализовывать условные операции (if/else),
- работать с переменными и т. п. (Хранить переменные можно в отдельном файле :fellow:)
- делать запросы в базу данных
Примеры использования SSI:
1. Вставка содержимого из другого файла:
<!--#include virtual="/aa-resurs/vstavku/header.htm"-->
1.2 Вывод служебной информации
Твой IP - <!--#echo var="REMOTE_ADDR"--> <BR>
Твой броузер - <!--#echo var="HTTP_USER_AGENT"--> <BR>
Мой сервер - <!--#echo var="SERVER_NAME"--> <BR>
Ты пришел со страницы - <!--#echo var="HTTP_REFERER"--> <BR>
<!--#config timefmt="%s"-->
<!--#flastmod file="ssi.shtml"--> <BR>
Время модификации файла этой страницы в читабельном виде:
<!--#config timefmt="%d.%m.%Y %H:%M:%S"-->
<!--#flastmod file="ssi.shtml"--> <BR>
Вывод:
Время модификации файла этой страницы в секундах с 01.01.1970: 1502632649
Время модификации файла этой страницы в читабельном виде: 13.08.2017 16:57:29
2. Директивы SSI:
echo | Вставка в документ переменных среды (браузер, дата, имя документа, ...). |
include | Включение файла в HTML документ. |
fsize | Включение размера файла в HTML документ. |
flastmod | Включение даты последней модификации файла в HTML документ. |
exec | Выполнение внешнего исполняемого файла (CGI программы). Выходной поток данных (стандартный вывод) этой программы включается в документ. |
config | Установка параметров для SSI+ команд. |
odbc | Обращение к внешней ODBC СУБД. |
Отправка электронной почты или представление формы. | |
if | Условный оператор, управляющий выполнением других команд SSI и вывода документа. |
goto | Оператор перехода на определенную SSI метку (label). |
label | Метка в документе. |
break | Остановка вывода документа. |
3. Условия в SSI:
Условие - это либо строка, которая является истинной, если непустая, или набор операторов сравнения строк. Операторы могут быть =,!=,<,<=,> и >. Если вторая строка заключена в "/"(слэши), то условие истинно, если в первой строке встречается хоть одно вхождение второй строки. Можно объединять несколько операторов сравнения с помощью операторов &&(И) и ||(ИЛИ). Для группирования условий используются "()"(скобки).
3.1 Примеры условий по url:
Пример 1
<!--#if expr='v("DOCUMENT_NAME")=~/about.html/'-->
<a class="active" href="#">
<!--#else -->
<a href="about.html">
<!--#endif -->
About</a>
Пример 2
<!--#if expr="%{DOCUMENT_URI} =~ /product/"-->
Product path
<!--#else-->
Some other path
<!--#endif-->
3.3 Примеры условий по сравнению переменных:
Допустим переменная GOROD равняется значению Киев
(<!--#set var="GOROD" value="Киев" -->)
пример 1:
<!--#if expr='v("GOROD")=~/nonnn/'--> //если перем. "GOROD" не равна значению "Киев"
Нет такого города //сделается вывод этой строки
<!--#else --> //а если значение другое чем "nonnn"
<!--#echo var="GOROD" --> //тогда сделать вывод переменной "GOROD"
<!--#endif --> //конец условия
пример 2:
<!--#if expr='v("GOROD") = "Киев"' --> //если перем. "GOROD" равна "Киев"
<!--#else-->
<!--#echo var="GOROD" --> //сделается вывод этой переменной. Можно любое слово
<!--#endif -->//конец условия
пример 3 с двумя условиями:
<!--#if expr="УСЛОВИЕ1" -->
HTML-код, который будет выводиться, если УСЛОВИЕ1 истинно
<--#elif expr="УСЛОВИЕ2" -->
HTML-код, который будет выводиться, если УСЛОВИЕ1 ложно, а УСЛОВИЕ2 истинно
<--#else -->
HTML-код, который будет выводиться, если все условия ложны
<--#endif -->
3.3. Если откуда-то пришел:
<!--#if expr='-R "10.0.0.0/8"' -->
from local net
<!--#else -->
from somewhere else
<!--#endif -->
3.4. Если переменная содержит:
В приведенном ниже примере будет напечатано «foo is bar», если для переменной foo установлено значение «bar».
<!--#if expr='v("foo") = "bar"' -->
<!--#else-->
foo is bar
<!--#endif -->
Вывод рандомного текста:
Описание:
1 строка. Делаем конфиг временни для вывода только секунд.
2 строка. Пременной RND присваиваем текущую секунду
3. строка. Выводим в нужном месте эту секунду.
<!--#config timefmt="%S"-->
<!--#set var="RND" value="$DATE_LOCAL"-->
получаем число текущей секунды : <!--#echo var="RND"-->
Или через переменную которая сравнивает по числу:
<!--#config timefmt="%S" -->
<!--#set var="rand" value="$DATE_LOCAL" -->
<!--#if expr="$rand = /00/" -->
<!--#include virtual="rand_content_0.txt" -->
<!--#elif expr="$rand = /01/" -->
<!--#include virtual="rand_content_1.txt" -->
<!--#elif expr="$rand = /02/" -->
<!--#include virtual="rand_content_2.txt" -->
<!--#elif expr="$rand = /03/" -->
<!--#include virtual="rand_content_3.txt" -->
<!--#else -->
<!--#include virtual="fall_back_content.txt" -->
<!--#endif -->
Вывод содержимого для печати с браузера:
Ссылка на верстю для печати:
<a href="<!--#echo var="DOCUMENT_URI" -->?print ">Print this page</a>
И сама часть текста для печати:
<!--#if expr="$QUERY_STRING = 'print'" -->
<p>Текст на печать</p>
<!--#else -->
<p>Текст на экране</p>
<!--#endif -->
Все примеры условных выражений:
Условие | Описание |
---|---|
string1 ~= /string2/ | истинно или равно |
string1 ~ string2 | Строка str пустая. |
string1 = string2 | Значение str1 равно str2. |
string1 != string2 | Значение str1 НЕ равно str2. |
string1 < string2 | Значение str1 меньше str2. |
str1 <= str2 | Значение str1 меньше или равно str2. |
str1 > str2 | Значение str1 больше str2. |
string1 >= string2 | Значение str1 больше или равно str2. |
str1 && str2 | Строка str1 И строка str2 не пустые. |
str1 || str2 | Строка str1 ИЛИ строка str2 не пустые. |
*:belay: "=" и "!=" имеют больший приоритет, чем "&&" и "||", а "!" имеет наивысший приоритет.
4. Вывод размера файла:
<!--#config sizefmt="abbrev"--><!--#fsize file="proba.html"-->
Выводит размер файла в килобайтах: (17k)
<!--#config sizefmt="bytes"--><!--#fsize file="proba.html"-->
Выводит размер файла в байтах (17,076)
5. Вывод даты и последней модификации файла или страницы где размещен сам код:
// document
<a href=pricelst.doc>Скачать Прайс</a>
<!--#config timefmt="%d.%m.%y" -->
(MS Word 6.0/95, <!--#flastmod virtual="pricelst.doc" -->)
// stranica
<!--#config timefmt="%G-%m-%d" -->
<p>Эта страница модифицирована: <!--#echo var="LAST_MODIFIED"--></p>
5.1 Выводим дату в Нужном формате:
Cтандартный вывод даты в SSI:
<!--#echo var="DATE_LOCAL" -->
или
<!--#echo var="DATE_GMT" -->
//пишем переменную
<!--#config timefmt="%G" -->
<!--#set var="YEAR" value="$DATE_LOCAL"-->
//В нужном месте вставляем
<!--#echo var="YEAR"-->
//Получение дня недели
<!--#config timefmt="%u" -->
<!--#set var="NUM_DAY" value="$DATE_LOCAL"-->
<!--#if expr="$NUM_DAY=1" -->
<!--#set var="DAY" value="понедельник" -->
<!--#elif expr="$NUM_DAY=2" -->
<!--#set var="DAY" value="вторник" -->
<!--#elif expr="$NUM_DAY=3" -->
<!--#set var="DAY" value="среда" -->
<!--#elif expr="$NUM_DAY=4" -->
<!--#set var="DAY" value="четверг" -->
<!--#elif expr="$NUM_DAY=5" -->
<!--#set var="DAY" value="пятница" -->
<!--#elif expr="$NUM_DAY=6" -->
<!--#set var="DAY" value="суббота" -->
<!--#else -->
<!--#set var="DAY" value="воскресенье" -->
<!--#endif -->
//Получение числа
<!--#config timefmt="%e" -->
<!--#set var="DATE" value="$DATE_LOCAL"-->
//Получение названия месяца
<!--#config timefmt="%m" -->
<!--#set var="NUM_MONTH" value="$DATE_LOCAL"-->
<!--#if expr="$NUM_MONTH=01" -->
<!--#set var="MONTH" value="января" -->
<!--#elif expr="$NUM_MONTH=02" -->
<!--#set var="MONTH" value="февраля" -->
<!--#elif expr="$NUM_MONTH=03" -->
<!--#set var="MONTH" value="марта" -->
<!--#elif expr="$NUM_MONTH=04" -->
<!--#set var="MONTH" value="апреля" -->
<!--#elif expr="$NUM_MONTH=05" -->
<!--#set var="MONTH" value="мая" -->
<!--#elif expr="$NUM_MONTH=06" -->
<!--#set var="MONTH" value="июня" -->
<!--#elif expr="$NUM_MONTH=07" -->
<!--#set var="MONTH" value="июля" -->
<!--#elif expr="$NUM_MONTH=08" -->
<!--#set var="MONTH" value="августа" -->
<!--#elif expr="$NUM_MONTH=09" -->
<!--#set var="MONTH" value="сентября" -->
<!--#elif expr="$NUM_MONTH=10" -->
<!--#set var="MONTH" value="октября" -->
<!--#elif expr="$NUM_MONTH=11" -->
<!--#set var="MONTH" value="ноября" -->
<!--#else -->
<!--#set var="MONTH" value="декабря" -->
<!--#endif -->
//Получение года
<!--#config timefmt="%G" -->
<!--#set var="YEAR" value="$DATE_LOCAL"-->
//Собственно вывод получившейся строки
<!--#echo var="DAY" -->
<!--#echo var="DATE" -->
<!--#echo var="MONTH" -->
<!--#echo var="YEAR"-->
Формат | Описание | Пример |
---|---|---|
%a | Краткое название дня недели | Mon |
%A | Полное название дня недели | Monday |
%b | Аббревиатура названия месяца | Dec |
%B | Полное название месяца | December |
%d | День месяца | 01 (не 1) |
%D | Дата в формате "%m/%d/%y" | 12/31/99 |
%e | День месяца | 13 |
%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 | Неделя года | 16 |
%w | Номер дня недели | 4 |
%y | Год в формате ГГ | 99 |
%Y | Год в формате ГГГГ | 1999 |
%Z | Временная зона | MSK |
6. Отдельная часть кода для нужного браузера
<!--#if expr="$HTTP_USER_AGENT=/Mozilla\/4/ || $HTTP_USER_AGENT=/Mozilla\/5/" -->
Если версия браузера не ни же 4 или 5, то вывести вариант дизайна, использующий, например, DHTML
<!--#else -->
Здесь вывести простой дизайн
<!--#endif -->
7. Подсветить меню нанужной странице:
8. Как в SSI вставить фрейм?
<html>
<head>
...
<!--#include virtual="frame.html" -->
</head>
<body>
...
</body>
</html>
// Содержимое frame.html :
<!--#if expr="$QUERY_STRING!=done && $HTTP_REFERER!=/your_domain\.ru/" -->
<frameset rows="150,*">
<frame name="NAVIGATION" src="/navigation.html">
<frame name="CONTENT" src="<!--#echo var="DOCUMENT_URI" -->?done">
</frameset>
<!--#endif -->
9.1 Параметр cmd
Запускает указанную командную строку с использованием локального интерпретатора.
<!--#exec cmd="команда"-->
Например, строка <!--#exec cmd="/usr/bin/date" --> исполняет Unix-команду date.
9.2 Параметр cgi
Выполняет CGI-программу и результат её выполнения вставляет в указанное место. В качестве параметра указывается адрес программы.
<!--#exec cgi="URL"-->
Использование директивы exec
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SSI</title>
</head>
<body>
<p>Всего прочитало эту страницу <!--#exec cgi="/counter.pl"-->
человек.</p>
</body>
</html>
В данном примере запускается программа counter.pl, написанная на Perl, которая подсчитывает число посетителей данной страницы и записывает его в файл или в базу данных. После этого результат отображается в месте, где стоит строка <!--#exec cgi="/counter.pl"-->.
10. Обработка формы в SSI:
Сама форма и сообщение о умпешной отправки находится в одном файле - contact.htm
<!--#if expr="$QUERY_STRING = 'submitted'" -->
<p>Спасибо Ваше письмо отправлено.</p>
<!--#else -->
<form method="post" action="feedback.php">
<input type="hidden" name="redirect" value="contact.shtml?submitted" />
.......
</form>
<!--#endif-->
11. Вывод разного содержимого для разных USER:
<!--#if expr="$REMOTE_USER = 'user1'" -->
Welcome user1, you will now be redirected to your personal page.
To access your page directly <a href="user1/page.shtml">click here</a>.
<!--#elif expr="$REMOTE_USER = 'user2'" -->
Welcome user2, you will now be redirected to your personal page.
To access your page directly <a href="user2/page.shtml">click here</a>.
<!--#else -->
Should you BE here? Problems email con@dom.com
<!--#endif -->
* Параметр errmsg устанавливает сообщение, отображаемое при возникновении ошибок. По умолчанию выводится текст [an error occurred while processing this directive], но вы можете поменять его на свой, да ещё написав по-русски. Синтаксис следующий.
<!--#config errmsg="Сообщение об ошибке"-->
источники:
- модуль - Apache Module mod_include
- Все команды w3.org
- Википедия
Переменные SSI:
Команда: <!--#printenv --> выводит весь список переменных окружения
<pre>
<!--#printenv -->
</pre>
Когда браузер запрашивает от веб-сервера документ, он также пересылает на сервер техническую информацию об определённых параметрах браузера и операционной системы. Веб-сервер в свою очередь одновременно с документом возвращает некоторые свои характеристики. Таким образом, браузер и веб-сервер обмениваются данными, которые называются переменные окружения. Эти переменные можно применять в своих целях и отображать их на веб-странице.
При использовании SSI общий синтаксис вывода определенной переменной окружения будет следующий.
<!--#echo var="переменная"-->
Как объединить значение двух переменных?
Переменная Z выведет значение которое состоит из двух переменных R+M:
<!--#set var="Z" value="${R}_${M}" -->
:recourse: Условие через переменные:
<!-- Определяем переменные SSI -->
<!--#set var="A" value="$REQUEST_URI" -->
<!--#set var="C" value="REQUEST_URI" -->
<!--#set var="B" value="/0-admin/00-content" -->
<!--#set var="D" value="$DOCUMENT_URI" -->
<!--#set var="G" value="DOCUMENT_URI" -->
<!--#set var="F" value="$SCRIPT_NAME" -->
<!-- ☬== Условие = -->
<!--#if expr="'D' = 'F'" -->
<!--#include virtual="$B${D}"-->
<!--#else -->
<!--#include virtual="$B${A}"-->
<!--#endif -->
<!-- ☬== Покажет Все переменные = -->
<pre>
<!--#printenv -->
</pre>
Как пользоватся переменными в SSI?
<!--#set var="I_TITLE" value="Заголовок сайта" -->
<!--#set var="I_DESCRIPTION" value="Простой и наглядный редактор каскадных стилей. Простой и понятный интерфейс." -->
<!--#set var="I_RATING" value="1" -->
<!--#set var="I_PIC" value="ps.gif" -->
<!--#set var="I_PIC_W" value="300" -->
<!--#set var="I_PIC_H" value="225" -->
<!--#set var="I_LOCALARCHIVE" value="" -->
<!--#set var="I_PLATFORM" value="Windows 95/NT" -->
<!--#set var="I_STATUS" value="Free" -->
<html><head>
<title>Web Club Repository. <!--#echo var="TITLE" --></title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="keywords" content="<!--#echo var="KEYWORDS" -->">
<meta name="description" content="<!--#echo var="I_DESCRIPTION" -->">
<link rel="stylesheet" type="text/css" href="/webclub2.css">
</head>
<body>
<table>
<tr><td>
<h1><!--#echo var="I_TITLE" --></h1>
</td></tr></table>
<!--#if expr="$I_PIC" -->
<br>
<table>
<tr><td align="center" valign="middle">
<img src="<!--#echo var="I_PIC" -->"
width="<!--#echo var="I_PIC_W" -->"
height="<!--#echo var="I_PIC_H" -->" border=0>
</td></tr></table>
<!--#endif -->
<p>
<!--#if expr="$I_LOCALARCHIVE" -->
<b>Она сама у нас</b>:
<a href="<!--#echo var="I_LOCALARCHIVE" -->">
<!--#echo var="I_LOCALARCHIVE" --></a><br>
<!--#endif -->
<!--#if expr="$I_PLATFORM" -->
<b>Платформа</b>: <!--#echo var="I_PLATFORM" --><br>
<!--#endif -->
<!--#if expr="$I_STATUS" -->
<b>Статус</b>: <!--#echo var="I_STATUS" --><br>
<!--#endif -->
</p>
<p align="justify">
<!--#if expr="$I_DESCRIPTION" -->
<!--#echo var="I_DESCRIPTION" -->
<!--#else -->
No description.
<!--#endif -->
</p>
<!--#include virtual="/materials/footer.html"-->
</body>
</html>
:what: Также переменные можно вставить в путь include
<!--#set var="A" value="$REQUEST_URI" -->
<!--#set var="B" value="/admin" -->
<!--#include virtual="$B${A}"-->
:wassat: Если перед переменной поставить слеш то выведется только ее название:
<!--#echo var="\$A"-->
Список ВСТРОЕНЫХ перменных в SSI:
Например команда: <!--#echo var="REQUEST_URI" --> сделает вывод пути к текущему файлу.
Это можно использовать в (<link rel="canonical" href="<!--#echo var="REQUEST_URI" -->" />)
-------
DOCUMENT_ROOT=/webdata/citforum/htdocs
HTTP_ACCEPT=*/*
HTTP_ACCEPT_LANGUAGE=ru
HTTP_CONNECTION=keep-alive
HTTP_HOST=www.citforum.ru
HTTP_REFERER=http://vakh.online.com.ua/promo/library/index.html
HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
HTTP_VIA=1.1 ce
HTTP_X_FORWARDED_FOR=213.59.141.209
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
REMOTE_ADDR=213.59.136.10
REMOTE_HOST=nat-cisco-gw.net.kht.ru
REMOTE_PORT=41305
SCRIPT_FILENAME=/webdata/citforum/htdocs/internet/html/ssi.shtml
SERVER_ADDR=195.230.75.98
SERVER_ADMIN=info@citforum.ru
SERVER_NAME=www.citforum.ru
SERVER_PORT=80
SERVER_SIGNATURE=
SERVER_SOFTWARE=Apache/1.3.12 (Unix) mod_ssl/2.6.2 OpenSSL/0.9.4
GATEWAY_INTERFACE=CGI/1.1
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
QUERY_STRING=
REQUEST_URI=/internet/html/ssi.shtml
SCRIPT_NAME=/internet/html/ssi.shtml
DATE_LOCAL=11.07.2001 10:44:14
DATE_GMT=11.07.2001 06:44:14
LAST_MODIFIED=21.06.2000 16:31:33
DOCUMENT_URI=/internet/html/ssi.shtml
DOCUMENT_PATH_INFO=
USER_NAME=andreya
DOCUMENT_NAME=ssi.shtml
Некоторые переменные с их описанием перечислены в табл. 1. Заметьте, что все имена пишутся заглавными символами. Хотя это условие и необязательно, именно такая форма записи является традиционной и устоявшейся.
Переменная | Описание |
---|---|
DOCUMENT_ROOT | Путь к корневой папке сайта. Для локального веб-сервера значение может принимать вид z:/home/htmlbook.ru/www, а в других случаях зависит от операционной системы сервера и используемого программного обеспечения. |
GATEWAY_INTERFACE | Версия CGI (Common Gateway Interface, общий шлюзовый интерфейс). Значение обычно равно CGI/1.1. |
HTTP_ACCEPT | Типы файлов, которые способен принять браузер. В качестве значения возвращается список поддерживаемых MIME-типов разделенных между собой запятой, например: text/html, application/xhtml+xml. |
HTTP_CONNECTION | Тип соединения браузера с веб-сервером. Так, значение keep-alive означает, что браузер поддерживает постоянное соединение с сервером. При этом в течение одного сеанса соединения разрешено делать несколько запросов. Повторного соединения в таком случае уже не происходит. |
HTTP_HOST | Доменное имя сайта. Обычно различают имена с префиксом www (www.htmlbook.ru) и без него (htmlbook.ru). Переменная вернёт тот адрес сайта, который указан в адресной строке браузера. |
HTTP_REFERER | Адрес страницы, с которой пользователь перешел на данный сайт, он еще называется реферер. |
HTTP_USER_AGENT |
Идентификатор используемого браузера и операционной системы. В качестве значения возвращается строка, содержащая ключевые слова. Например, следующая строка Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2 говорит, что пользователь использует браузер Firefox 6.0.2 под операционной системой Windows 7. |
QUERY_STRING | Запрос, который указан в адресной строке после вопросительного знака (?). Обычно пишется в форме «переменная=значение», где переменные разделяются между собой амперсандом (&). Так, при написании адреса http://htmlbook.ru/?id=5&slv=34 будет возвращено значение id=5&slv=34. |
REMOTE_ADDR | IP-адрес посетителя сайта. |
REQUEST_METHOD | Метод отправки данных на сервер. По умолчанию применяется метод GET. |
REQUEST_URI | Адрес запрашиваемого документа. Отсчёт ведётся от корня сайта, т.е. для полного адреса http://htmlbook.ru/1.html вернется значение 1.html. |
SERVER_ADDR | IP-адрес компьютера, на котором размещается сайт. |
SERVER_ADMIN | Адрес электронной почты администратора сайта. |
SERVER_NAME | Имя сервера. |
SERVER_PORT | Порт, по которому ожидается получение данных. |
SERVER_PROTOCOL | Протокол для получения и отправки данных. Значение обычно равно HTTP/1.1. |
SERVER_SOFTWARE | Программное обеспечение установленное на сервере. Для веб-сервера Apache возвращается номер версии (Apache/2.2.4), а также версия PHP (PHP/5.3.3). |