Предопределённые серверные переменные: $_SERVER

$_SERVER введен начиная с версии PHP 4.1.0. В предыдущих версиях использовался $HTTP_SERVER_VARS.
$_SERVER это массив переменных создаваемый web-сервером. Нет гарантии, что каждый web-сервер будет предоставлять все нижеперечисленные переменные, сервер может опустить некоторые позиции или добавить новые, здесь не указанные. $_SERVER доступен во всех областях видимости скрипта, то есть не нужно писать global $_SERVER для доступа к нему внутри функций и методов, как это делалось с $HTTP_SERVER_VARS.

Доступ к переменным осуществляется также, как в любом ассоциативном массиве: $_SERVER[‘имя переменной’].

PHP_SELF
Имя файла исполняемого в данный момент скрипта; относительно document root. Например, $_SERVER[‘PHP_SELF’] в скрипте с адресом http://example.com/test.phpr даст /test.php. Если PHP запущен как процессор командной строки, эта переменная недоступна.

ARGV
Массив аргументов, передаваемых скрипту. Если скрипт работает из командной строки, это даёт доступ, в стиле С, к параметрам командной строки. Если вызывается через метод GET, будет содержать строку запроса.

ARGC
Содержит количество параметров командной строки, передаваемых скрипту (если запущен из командной строки).

GATEWAY_INTERFACE
Содержит вариант спецификации CGI, используемой сервером, например CGI/1.1.

SERVER_NAME
Имя хоста сервера, на котором выполняется текущий скрипт. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.
Например, у текущей страницы — easywebscripts.net

SERVER_SOFTWARE
Строка-идентификатор сервера, выдаваемая в шапках (headers) при ответах на запросы.
Пример: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4

SERVER_PROTOCOL
Имя и версия информационного протокола, по которому страница запрошена, например, HTTP/1.0

REQUEST_METHOD
Какой метод запроса был использован для доступа к странице GET, HEAD, POST, PUT.

QUERY_STRING
Строка запроса, если имеется, по которому был выполнен доступ к странице.

DOCUMENT_ROOT
Корневая директория документов, под которой выполняется текущий скрипт, как определено в файле конфигурации сервера.

HTTP_ACCEPT
Содержимое шапки Accept: из текущего запроса, если имеется.
Пример: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

HTTP_ACCEPT_CHARSET
Содержимое шапки Accept-Charset: из текущего запроса, если имеется. Пример: utf-8.

HTTP_ACCEPT_ENCODING
Содержимое шапки Accept-Encoding: из текущего запроса, если имеется. Пример: gzip.

HTTP_ACCEPT_LANGUAGE
Содержимое шапки Accept-Language: из текущего запроса, если имеется. Пример: en.

HTTP_CONNECTION
Содержимое шапки Connection: из текущего запроса, если имеется. Пример: Keep-Alive.

HTTP_HOST
Содержимое шапки Host: из текущего запроса, если имеется.
Например, у текущей страницы — easywebscripts.net

HTTP_REFERER
Адрес страницы (если имеется), с которой был осуществлен переход на текущую страницу. Устанавливается пользовательским агентом (браузером). Агенты могут устанавливать данное значение некорректно — полностью доверять ему нельзя! Можно использовать для примитивной защиты
проверка подлинности

HTTP_USER_AGENT
Содержимое шапки User_Agent: из текущего запроса, если имеется. Проще говоря это браузер пользователя.
Пример: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Помимо прочего, вы можете использовать это значение с get_browser() для приспособления вывода вашей страницы под разные браузеры.

REMOTE_ADDR
IP-адрес, с которого пользователь просматривает текущую страницу.

REMOTE_PORT
Порт на пользовательской машине для соединения с web-сервером.

SCRIPT_FILENAME
Абсолютный путь к файлу исполняемого в данный момент скрипта.

SERVER_ADMIN
Значение, заданное в директиве SERVER_ADMIN (для Apache) в файле конфигурации web-сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста.

SERVER_PORT
Порт на серверной машине, используемый web-сервером для соединения. По умолчанию это 80; использование SSL, к примеру, изменит это значение на то, которое вы определили для секретного порта HTTP.

SERVER_SIGNATURE
Строка, содержащая версию сервера и имя виртуального хоста, добавленная к генерируемым сервером страницам, если эта возможность включена.

PATH_TRANSLATED
Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.

SCRIPT_NAME
Путь к текущему скрипту. Это используется в страницах, которым нужно указывать на самих себя.
$_SERVER[‘SCRIPT_FILENAME’] — $_SERVER[‘SCRIPT_NAME’] = document root

REQUEST_URI
URI, который был задан для доступа к данной странице, например, /index.htm.

PHP_AUTH_USER
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается username, предоставляемое пользователем.

PHP_AUTH_PW
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается password, предоставляемый пользователем.

PHP_AUTH_TYPE
При работе под Apache-модулем и выполнении HTTP-аутентификации, в эту переменную устанавливается тип аутентификации.

3 Комментарии “Предопределённые серверные переменные: $_SERVER

  1. просто в дополнение …
    в любом месте своего скрипат пишем —

    phpinfo(32);

    увидете все переменные используемые вышим скриптом в данный момент — все серверные переменные включенные на вашем сервере. и переменные посланные ГЕТом или ПОСТом.

  2. SERVER_PORT
    Порт на серверной машине, используемый web-сервером для соединения. По умолчанию это 80; использование SSL, к примеру, изменит это значение на то, которое вы определили для секретного порта HTTP.

    всё же не "секретный порт", а "защищённый" 🙂

  3. Стоит обратить внимание на то, что SERVER_NAME даёт префикс 'www.', если он написан в адресной строке.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *