Книга: Справочник по PHP
Переменные окружения
Переменные окружения
Переменные окружения в PHP
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержаться некоторые заголовки, но не все (получить все заголовки нельзя). Далее я приведу список наиболее важных переменных окружения.
HTTP_ACCEPT
- В этой переменной перечислены все MIME-типы данных, которые могут быть восприняты браузером. Строка */* означает, что браузер понимает любой тип.
HTTP_ACCEPT= image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*
HTTP_REFERER
- Эта переменная представляет сведения о странице, с которой пользователь попал на данную. Эту переменную можно использовать, например, для отслеживания перемещения пользователя по вашему сайту, а затем просматривать наиболее популярные маршруты.
HTTP_REFERER= http://www.spravkaweb.ru/php/pril/
HTTP_COOKIE
- В этой переменной хранятся все Cookies в URL-кодировке.
HTTP_COOKIE= hotlog=1; ZDEDebuggerPresent=php,phtml,php3; b=b; PHPSESSID=16805922a9258cda274316e60f649cf8
HTTP_USER_AGENT
- Идентифицирует браузер пользователя. Для установления типа браузера нужно проверить эту строку на наличие слов: если браузер - Internet Explorer, то будет присутствовать подстрока MSIE, а если в наличии лишь слово Mozilla, то это Netscape.
Например:
HTTP_USER_AGENT= Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2; Maxthon)
HTTP_HOST
- Содержит доменное имя Web-сервера, на котором запустился сценарий. Эту переменную достаточно удобно использовать, например, для генерации полного пути, который требуется в заголовке Location, чтобы не привязываться к конкретному серверу.
HTTP_HOST= www.spravkaweb.ru
HTTP_FROM
- Адрес электронной почты пользователя, направившего запрос.
SERVER_NAME
- Доменное имя или IP-адрес сервера.
SERVER_NAME= www.spravkaweb.ru
SERVER_SOFTWARE
- Имя и версия программы-сервера, отвечающей на запрос клиента.
SERVER_PORT
- Эта переменная содержит порт сервера, к которому обратился браузер пользователя. Обычно это 80. Переменная так-же может применяться для формирования параметра заголовка Location.
SERVER_PORT= 80
SERVER_PROTOCOL
- Переменная содержит имя и версию информационного протокола, который был использован для запроса.
SERVER_PROTOCOL= HTTP/1.1
REMOTE_ADDR
- Эта переменная содержит IP-адрес (или доменное имя) узла пользователя, на котором был запущен браузер.
REMOTE_PORT
- Порт, который закрепляется за браузером пользователя для получения ответа сервера.
REMOTE_USER
- Идентификационное имя пользователя, посылающего запрос.
SCRIPT_NAME
- Содержит имя файла, содержащего данный сценарий. Эту переменную удобно использовать при формировании заголовка Location при переадресации на себя (self-redirect), а также для подставления значения атрибута action тега <form> на странице, которую вызывает сценарий при запуске без параметров (для того чтобы не привязываться к конкретному имени сценария).
DOCUMENT_ROOT
- Корневой каталог дерева Web-документов.
REQUEST_METHOD
- Метод, который применяет пользователь при передаче данных. Надо заметить, что грамотно составленный сценарий должен сам определять на основе этой переменной, какой метод задействует пользователь, и принимать данные из соответствующего источника, а не расчитывать, что передача будет осуществляться, например, только методом POST.
QUERY_STRING
- Содержит параметры, которые в URL указаны после вопросительного знака. Напомним, что они доступны как при методе GET, так и при методе POST (если в последнем случае они были определены в атрибуте action тега <form>).
PATH_INFO
- Содержит дополнительную информацию о пути.
PATH_TRANSLATED
- Та же информация, что и в переменной PATH_INFO с префиксом, задающим путь к корневому каталогу дерева Web-документов.
CONTENT_TYPE
- Медиа-тип данных запроса.
CONTENT_LENGTH
- Возвращает количество байт данных, присланных пользователем. Эту переменную необходимо анализировать, если вы занимаетесь приемом и обработкой POST-формы.
GATEWAY_INTERFACE
- Версия CGI, которую использует сервер.
Пример использования переменных окружения
Далее я приведу пример использования некоторых переменных:
<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>
- Использование переменной окружения ISC_PATH
- 22.3.3. Переменные окружения
- 14.4.2. Хранение переменных окружения в виде массива или хэша
- 15.4.2.1. Добавляйте отладочные опции и переменные
- Глава 2 Аргументы, опции и переменные окружения
- 2.4. Переменные окружения
- 13.2.1. Категории локалей и переменные окружения
- 15.4.2.2. Используйте специальные переменные окружения
- Где устанавливаются переменные окружения
- 10.4.2. Пользовательские переменные окружения
- 10.4. Переменные окружения
- 10.4.1. Системные переменные окружения