Непосредственно перед запуском сценария сервер передает ему некие
переменные окружения с информацией. В определенных переменных содержаться
некоторые заголовки, но не все (получить все заголовки нельзя).
Далее я приведу список наиболее важных переменных окружения.
HTTP_ACCEPT - В этой переменной перечислены все MIME-типы
данных, которые могут быть восприняты браузером. Строка */* означает,
что браузер понимает любой тип.
HTTP_ACCEPT= */*
HTTP_REFERER - Эта переменная представляет сведения о
странице, с которой пользователь попал на данную. Эту переменную
можно использовать, например, для отслеживания перемещения пользователя
по вашему сайту, а затем просматривать наиболее популярные маршруты.
HTTP_REFERER= http://www.spravkaweb.ru/
HTTP_COOKIE - В этой переменной храняться все Cookies
в URL-кодировке.
HTTP_COOKIE=
HTTP_USER_AGENT - Идентифицирует браузер пользователя.
Для установления типа браузера нужно проверить эту строку на наличие
слов: если браузер - Internet Explorer, то будет присутствовать
подстрока MSIE, а если в наличии лишь слово Mozilla, то это Netscape.
HTTP_USER_AGENT= Mozilla/4.0 (compatible; MSIE 5.0; Windows
NT 4.0)
У вас Internet Explorer
HTTP_HOST - Содержит доменное имя Web-сервера, на котором
запустился сценарий. Эту переменную достаточно удобно использовать,
например, для генерации полного пути, который требуется в заголовке
Location, чтобы не привязываться к конкретному серверу.
HTTP_HOST= www.spravkaweb.ru
HTTP_FROM - Адрес электронной почты пользователя, направившего
запрос.
HTTP_FROM=
SERVER_NAME - Доменное имя или IP-адрес сервера.
SERVER_NAME= www.spravkaweb.ru
SERVER_SOFTWARE - Имя и версия программы-сервера, отвечающей
на запрос клиента.
SERVER_SOFTWARE= Apache/1.3.33 (Unix) mod_jk/1.2.8 mod_auth_passthrough/1.8
mod_log_bytes/1.2mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.22
OpenSSL/0.9.7a PHP-CGI/0.1b
SERVER_PORT - Эта переменная содержит порт сервера, к
которому обратился браузер пользователя. Обычно это 80. Переменная
так-же может применяться для формирования параметра заголовка Location.
SERVER_PORT= 80
SERVER_PROTOCOL - Переменная содержит имя и версию информационного
протокола, который был использован для запроса.
SERVER_PROTOCOL= HTTP/1.0
REMOTE_ADDR - Эта переменная содержит IP-адрес (или доменное
имя) узла пользователя, на котором был запущен браузер.
REMOTE_ADDR= 212.94.114.177
REMOTE_PORT - Порт, который закрепляется за браузером
пользователя для получения ответа сервера.
REMOTE_PORT= 4277
REMOTE_USER - Идентификационное имя пользователя, посылающего
запрос.
REMOTE_USER=
SCRIPT_NAME - Содержит имя файла, содержащего данный сценарий.
Эту переменную удобно использовать при формировании заголовка Location
при переадресации на себя (self-redirect), а также для подставления
значения атрибута action тега <form> на странице, которую
вызывает сценарий при запуске без параметров (для того чтобы не
привязываться к конкретному имени сценария).
SCRIPT_NAME= /pril.php
DOCUMENT_ROOT - Корневой каталог дерева Web-документов.
DOCUMENT_ROOT= /home/spravka/public_html
REQUEST_METHOD - Метод, который применяет пользователь
при передаче данных. Надо заметить, что грамотно составленный сценарий
должен сам определять на основе этой переменной, какой метод задействует
пользователь, и принимать данные из соответствующего источника,
а не расчитывать, что передача будет осуществляться, например, только
методом POST.
REQUEST_METHOD= GET
QUERY_STRING - Содержит параметры, которые в URL указаны
после вопросительного знака. Напомним, что они доступны как при
методе GET, так и при методе POST (если в последнем случае они были
определены в атрибуте action тега <form>).
QUERY_STRING= ss=getenv
PATH_INFO - Содержит дополнительную информацию о пути.
PATH_INFO=
PATH_TRANSLATED - Та же информация, что и в переменной
PATH_INFO с префиксом, задающим путь к корневому каталогу дерева
Web-документов.
PATH_TRANSLATED=
CONTENT_TYPE - Медиа-тип данных запроса.
CONTENT_TYPE=
CONTENT_LENGTH - Возвращает количество байт данных, присланных
пользователем. Эту переменную необходимо анализировать, если вы
занимаетесь приемом и обработкой POST-формы.
GATEWAY_INTERFACE - Версия CGI, которую использует сервер.
GATEWAY_INTERFACE= CGI/1.1
Далее я приведу пример использования некоторых переменных:
<html>
<head><title>Переменные окружения</title><head>
<body>
<h1>Переменные окружения:</h1>
<hr>
<?
echo "Вы пришли из: ".getenv("HTTP_REFERER")."<BR>";
$br=getenv("HTTP_USER_AGENT");
if(strpos($br,"MSIE")!==false)
echo "У вас Internet Explorer<BR>";
else echo
"У вас Netscape или др.<BR>";
echo "Ваш
IP: ".getenv("REMOTE_ADDR")."<BR>";
echo "Вот параметры в строке браузера: ".getenv("QUERY_STRING");
?>
</body>
</html>