Windows и Denwer. Добавление PHP в переменные среды. Переменные окружения в PHP Php переменные окружения
Когда браузер запрашивает от веб-сервера документ, он также пересылает на сервер техническую информацию об определённых параметрах браузера и операционной системы. Веб-сервер в свою очередь одновременно с документом возвращает некоторые свои характеристики. Таким образом, браузер и веб-сервер обмениваются данными, которые называются переменные окружения. Эти переменные можно применять в своих целях и отображать их на веб-странице.
При использовании SSI общий синтаксис вывода определенной переменной окружения будет следующий.
Некоторые переменные с их описанием перечислены в табл. 1. Заметьте, что все имена пишутся заглавными символами. Хотя это условие и необязательно, именно такая форма записи является традиционной и устоявшейся.
Переменная | Описание |
---|---|
DOCUMENT_ROOT | Путь к корневой папке сайта. Для локального веб-сервера значение может принимать вид z:/home/сайт/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..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 | Запрос, который указан в адресной строке после вопросительного знака (?). Обычно пишется в форме «переменная=значение», где переменные разделяются между собой амперсандом (&).?id=5&slv=34 будет возвращено значение id=5&slv=34 . |
REMOTE_ADDR | IP-адрес посетителя сайта. |
REQUEST_METHOD | Метод отправки данных на сервер. По умолчанию применяется метод GET. |
REQUEST_URI | Адрес запрашиваемого документа. Отсчёт ведётся от корня сайта, т.е..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 ). |
В примере 1 показано использование переменных окружения для отображения на веб-странице требуемой информации.
Пример 1. Вывод значения переменной DOCUMENT_ROOT
Путь к корневой папке сайта:
В результате выполнения примера будет выведена следующая строка: Путь к корневой папке сайта: /home/сайт/www .
Значения переменных окружения можно посмотреть с помощью программы на PHP, используя функцию phpinfo(), как показано в примере 2.
Пример 2. Использование phpinfo()
В результате выполнения программы будет выведена таблица с разными параметрами, в том числе и переменными окружения в разделе «Apache Environment» (рис. 1).
Рис. 1. Apache Environment
Также можно написать программу на PHP, которая будет выводить все переменные окружения в виде таблицы (пример 3)..
Пример 3. Вывод переменных окружения
\n\n
$a | $b |
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержатся некоторые заголовки, но, как уже говорилось, не все (получить все заголовки нельзя). Переменные окружения в языке 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 | Тип соединения. Возможны два варианта:
|
HTTP_REFERER | Значение поля REFERER. В этом поле браузер передает URL ресурса, который ссылается на наш сервер. Например, если пользователь перешел на сайт со страницы http://www.somehost.com/page.php, то значение поля REFERER будет http://www.somehost.com/page.php. |
HTTP_X_FORWARDED_FOR | Если пользователь работает через прокси-сервер, то в этом поле будет IP-адрес компьютера, обратившегося к прокси-серверу. Если данное поле уже содержит значение, то новое значение будет добавлено через запятую. |
Непосредственно перед запуском сценария сервер передает ему некие переменные окружения с информацией. В определенных переменных содержаться некоторые заголовки, но не все (получить все заголовки нельзя).
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 тега