Php server request host

$_SERVER

Переменная $_SERVER — это массив ( array ), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных; серверы могут опускать некоторые из них или предоставлять другие, не указанные здесь. Однако большинство из этих переменных учтены в спецификации » CGI/1.1 и, скорее всего, будут определены.

Замечание: При запуске PHP в командной строке большинство из этих записей будут недоступны или не будут иметь никакого значения.

В дополнение к перечисленным ниже элементам, PHP будет создавать дополнительные элементы со значениями из заголовков запросов. У элементов будет имя HTTP_ , за которым следует имя заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса. Например, заголовок Accept-Language будет доступен как $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] .

Индексы

‘ PHP_SELF ‘ Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER[‘PHP_SELF’] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php . Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключённого) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта. ‘argv’ Массив аргументов, переданных скрипту. Когда скрипт запущен в командой строке, это даёт C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса. ‘argc’ Содержит количество параметров, переданных скрипту (если запуск произведён в командной строке). ‘ GATEWAY_INTERFACE ‘ Содержит используемую сервером версию спецификации CGI; к примеру ‘CGI/1.1’ .. ‘ SERVER_ADDR ‘ IP-адрес сервера, на котором выполняется текущий скрипт. ‘ SERVER_NAME ‘ Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определённое для этого виртуального хоста.

Замечание: В Apache 2 необходимо установить UseCanonicalName = On и ServerName . В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности.

‘ SERVER_SOFTWARE ‘ Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос. ‘ SERVER_PROTOCOL ‘ Имя и версия информационного протокола, через который была запрошена страница; к примеру ‘HTTP/1.0’ ; ‘ REQUEST_METHOD ‘ Какой метод был использован для запроса страницы; к примеру ‘GET’ , ‘HEAD’ , ‘POST’ , ‘PUT’ .

Замечание:

PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был HEAD .

‘ REQUEST_TIME ‘ Временная метка начала запроса. ‘ REQUEST_TIME_FLOAT ‘ Временная метка начала запроса с точностью до микросекунд. ‘ QUERY_STRING ‘ Строка запроса, если есть, через которую была открыта страница. ‘ DOCUMENT_ROOT ‘ Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера. ‘ HTTPS ‘ Принимает непустое значение, если запрос был произведён через протокол HTTPS. ‘ REMOTE_ADDR ‘ IP-адрес, с которого пользователь просматривает текущую страницу. ‘ REMOTE_HOST ‘ Удалённый хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR .

Замечание: Сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache необходимо присутствие директивы HostnameLookups On в файле httpd.conf , чтобы эта переменная создавалась. Смотрите также gethostbyaddr() .

‘ REMOTE_PORT ‘ Порт на удалённой машине, который используется для связи с сервером. ‘ REMOTE_USER ‘ Аутентифицированный пользователь. ‘ REDIRECT_REMOTE_USER ‘ Аутентифицированный пользователь, если запрос был перенаправлен изнутри. ‘ SCRIPT_FILENAME ‘

Абсолютный путь к исполняемому скрипту.

Замечание:

Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php , переменная $_SERVER[‘SCRIPT_FILENAME’] будет содержать относительный путь, указанный пользователем.

‘ SERVER_ADMIN ‘ Эта переменная получает своё значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста. ‘ SERVER_PORT ‘ Порт на компьютере сервера, используемый сервером для соединения. Для установок по умолчанию, значение будет ’80’ ; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On , иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

‘ SERVER_SIGNATURE ‘ Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено. ‘ PATH_TRANSLATED ‘ Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.

Замечание: Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO .

‘ SCRIPT_NAME ‘ Содержит путь к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (то есть включённого) файла. ‘ REQUEST_URI ‘ URI, который был предоставлен для доступа к этой странице. Например, ‘ /index.html ‘. ‘ PHP_AUTH_DIGEST ‘ При выполнении аутентификации HTTP Digest этой переменной присваивается заголовок ‘Authorization’, отправленный клиентом (который затем следует использовать для проведения соответствующей проверки). ‘ PHP_AUTH_USER ‘ При выполнении HTTP-аутентификации этой переменной присваивается имя пользователя, предоставленное пользователем. ‘ PHP_AUTH_PW ‘ При выполнении HTTP-аутентификации этой переменной присваивается пароль, предоставленный пользователем. ‘ AUTH_TYPE ‘ При выполнении HTTP-аутентификации этой переменной присваивается тип аутентификации, который используется. ‘ PATH_INFO ‘ Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если она есть. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar , то переменная $_SERVER[‘PATH_INFO’] будет содержать /some/stuff . ‘ ORIG_PATH_INFO ‘ Исходное значение переменной ‘ PATH_INFO ‘ перед обработкой PHP.

Примеры

Пример #1 Пример использования $_SERVER

Источник

Массив $_SERVER

Описание значений глобального массива $_SERVER с примерами.

Параметры сервера

Имя хоста, обычно совпадает с доменом.

Название и версия сервера.

Версия сервера и имя виртуального хоста, обычно пуста.

Имя и версия используемого HTTP протокола.

Значение из директивы конфигурационного файла Apache.
На хостингах указывают контактный e-mail.

Параметры соединения

Имя сервера, как правило, совпадает с доменом.

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

64.246.37.238 fe80:0:0:0:200:f8ff:fe21:67cf

Удаленный хост, с которого пользователь просматривает текущую страницу.

Порт на удаленной машине, который используется для связи с веб-сервером.

Время запроса к серверу в Unix timestamp.

​Время запроса к серверу с точностью до микросекунд.

Пути на сервере

Директория корня сайта, в которой выполняется текущий скрипт.

/home/example.com/public_html

Появился в Apache2, то же самое что и DOCUMENT_ROOT .

Содержит путь, содержащийся после имени скрипта.
Например для адреса http://site.ru/index.php/123 значение будет следующим:

Исходное значение переменной PATH_INFO перед обработкой PHP.

Путь и имя выполняемого скрипта.

​Путь к исполняемому скрипту относительно корня сайта, обычно равен SCRIPT_NAME .

​Абсолютный путь к исполняемому скрипту.

/home/example.com/public_html/index.php

Авторизация на .htpasswd

Метод HTTP аутентификации.

$_SERVER[‘REMOTE_USER’] и $_SERVER[‘PHP_AUTH_USER’]

HTTPS

$_SERVER[‘HTTPS’] , $_SERVER[‘HTTP_X_HTTPS’] , $_SERVER[‘REDIRECT_HTTPS’]

URL

Значения в примерах приведены для адреса http://site.ru/index.php?page=1&sort=2

URI страницы с GET-параметрами, без домена.

Количество элементов массива $_SERVER[‘argv’] .

​Содержит URL страницы без GET-параметров и домена.

Заголовки браузера

Строка, обозначающая браузер и операционную систему, который открыл данную страницу.

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36

Куки браузера в виде строки: ключ=значение; ключ=значение;.
Данные доступны в переменной $_COOKIE .

_ym_uid=xxx; _ym_d=xxx; PHPSESSID=xxx;

Адрес страницы, с которой браузер пользователя перешёл на текущую страницу.

Содержимое заголовка Accept из текущего запроса.

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

HTTP заголовок переданный клиентом, говорящий о том какие алгоритмы сжатия он может понять.

​Содержимое заголовка Accept-Language .

Предпочтения клиента относительно кодировки.

Значение заголовка Connection .

Браузер отправляет этот заголовок со значением 1 , выражающий предпочтение клиента для зашифрованного ответа.

Дамп переменной $ _SERVER

Для тестирования, значения массива $ _SERVER для разных клиентов можно скидывать в лог-файл:

file_put_contents(__DIR__ . '/server.log', print_r($_SERVER, true) . PHP_EOL, FILE_APPEND);

Источник

Читайте также:  Music in c sharp
Оцените статью