10.4. Переменные окружения
Когда запускается какая-либо Unix-программа, доступная ей среда включает в себя набор связей "имя-значение" (как имена, так и значения являются строками). Некоторые из них устанавливаются пользователем вручную, другие - системой во время
10.4.1. Системные переменные окружения
Существует множество широко известных переменных окружения, значения которых программа может получить при запуске из оболочки Unix. Данные переменные (особенно НОМЕ) часто требуется оценить до считывания локального файла
автора
Роббинс Арнольд
10.4.2. Пользовательские переменные окружения
Несмотря на то, что приложения могут свободно интерпретировать переменные окружения за пределами определенного системой набора, в настоящее время фактическое использование такой возможности является довольно необычным.
Из книги
автора
10.4.3. Когда использовать переменные окружения
Общим для пользовательских и системных переменных окружения является то обстоятельство, что в них содержатся данные, хранение которых в большом количестве конфигурационных файлов было бы утомительным. И крайне утомительным
Из книги
автора
14.4. Переменные окружения
Иногда необходимо обращаться к переменным окружения, которые являются связующим звеном между программой и внешним миром. Переменные окружения - это просто метки, связанные с некоторым текстом (обычно небольшим); в них хранятся, например, пути к
Из книги
автора
Функции и переменные. Локальные переменные
Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения
Из книги
автора
22.3.3. Переменные окружения
В программах, работающих с возможностями setuid или setgid, нужно проявлять особую осторожность с установками окружения. Эти переменные определяются пользователем, активизировавшим программу, тем самым открывается путь для атак. Самая явная атака
Из книги
автора
Переменные окружения
Переменные окружения - глобальные установки системы, которые используются при первоначальной загрузке операционной системы. В Windows, Linux и в большинстве систем UNIX сервер Firebird распознает и использует некоторые переменные окружения, если они
Из книги
автора
Где устанавливаются переменные окружения
WindowsТип переменных окружения и способ их установки меняется от одной версии Windows к другой. В табл. 3.1 показаны типы (если применимы) и способы установки значений переменным окружения.Таблица 3.1. Установки переменных окружения для
Из книги
автора
Глава 2
Аргументы, опции и переменные окружения
Первой задачей любой программы обычно является интерпретация опций и аргументов командной строки. Данная глава рассматривает, как программы С (и С++) получают аргументы своей командной строки, описывает стандартные
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержатся некоторые заголовки, но, как уже говорилось, не все (получить все заголовки нельзя). Переменные окружения в языке PHP можно использовать как самые обыкновенные переменные. Переменные окружения делятся на четыре большие группы:
- Формируемые сервером переменные;
- Специальные переменные сервера Apache;
- Переменные HTTP-полей запроса;
- Переменные SSL-соединения (защищенного соединения).
Рассмотрим первые три группы переменных окружения:
Формируемые сервером переменные:
Переменная окружения
|
|
AUTH_TYPE
|
Используется схема аутентификации. Обычно "BASIC"
|
CONTENT_LENGTH
|
Длина содержимого, например, text/html
|
CONTENT_TYPE
|
MIME-тип содержимого, например, text/html
|
GETAWAY_INTERFACE
|
Версия CGI, например CGI/1.1
|
PATH_INFO
|
HTTP-путь к сценарию
|
PATH_TRANSLATED
|
Полный путь к сценарию
|
REMOTE_ADDR
|
IP-адрес запрашиваемого компьютера-клиента
|
REMOTE_HOST
|
Доменное имя запрашивающего компьютера (если доступно). Доменное имя определяется web-сервером с помощью службы DNS. Директива HostNameLookups сервера Apache разрешает (или запрещает) преобразование IP-адреса в доменное имя.
|
REMOTE_PORT
|
Порт, закрепленный за браузером для получения ответа от сервера
|
REMOTE_USER
|
Имя пользователя, прошедшего аутентификацию
|
QUERY_STRING
|
Строка переданных серверу параметров
|
SERVER_ADDR
|
IP-адрес сервера
|
SERVER_NAME
|
Доменное имя сервера. Определяется директивой ServerName файла конфигурации
|
SERVER_PORT
|
TCP-порт Web-сервера. Обычно 80
|
SERVER_PROTOCOL
|
Версия протокола HTTP. Например, HTTP/1.1
|
SERVER_SOFTWARE
|
Программное обеспечение сервера
|
SCRIPT_NAME
|
HTTP-путь к сценарию
|
SCRIPT_FILENAME
|
Имя файла сценария в файловой системе сервера (физический путь). Например, /var/www/cgi-bin/script.cgi
|
Специальные переменные сервера Apache:
Переменные HTTP-полей запроса:
Переменная окружения
|
Описание переменной окружения
|
HTTP_HOST
|
Имя виртуального хоста, которому адресован запрос
|
HTTP_USER_AGENT
|
Программное обеспечение удаленного пользователя. Обычно данная переменная окружения содержит название и версию браузера
|
HTTP_ACCEPT
|
Список поддерживаемых клиентов типов содержимого. В последнее время вместо списка браузеры возвращают значение *.*, что означает "все типы"
|
HTTP_ACCEPT_LANGUAGE
|
Список поддерживаемых языков в порядке предпочтения, например, ru, en
|
HTTP_ACCEPT_ENCODING
|
Список поддерживаемых методов сжатия
|
HTTP_ACCEPT_CHARSET
|
Список поддерживаемых кодировок
|
HTTP_CONNECTION
|
Тип соединения. Возможны два варианта:
- Keep-alive - если после ответа на запрос не нужно разрывать соединение;
- Close - если нужно закрыть соединение сразу после ответа на запрос.
|
HTTP_REFERER
|
Значение поля REFERER. В этом поле браузер передает URL ресурса, который ссылается на наш сервер. Например, если пользователь перешел на сайт со страницы http://www.somehost.com/page.php, то значение поля REFERER будет http://www.somehost.com/page.php.
|
HTTP_X_FORWARDED_FOR
|
Если пользователь работает через прокси-сервер, то в этом поле будет IP-адрес компьютера, обратившегося к прокси-серверу. Если данное поле уже содержит значение, то новое значение будет добавлено через запятую.
|
Переменные окружения
Переменные окружения в 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_PROTOCOL
Переменная содержит имя и версию информационного протокола, который был использован для запроса.
SERVER_PROTOCOL= HTTP/1.1
REMOTE_ADDR
Эта переменная содержит IP-адрес (или доменное имя) узла пользователя, на котором был запущен браузер.
REMOTE_PORT
Порт, который закрепляется за браузером пользователя для получения ответа сервера.
REMOTE_USER
Идентификационное имя пользователя, посылающего запрос.
SCRIPT_NAME
Содержит имя файла, содержащего данный сценарий. Эту переменную удобно использовать при формировании заголовка Location при переадресации на себя (self-redirect), а также для подставления значения атрибута action тега