<?php
echo ("REDIRECT_UNIQUE_ID==");echo (getenv (REDIRECT_UNIQUE_ID));echo ("< br >");
echo ("QUERY_STRING==");echo (getenv (QUERY_STRING));echo ("< br >");
echo ("DBENTRY==");echo (getenv (DBENTRY));echo ("< br >");
echo ("REDIRECT_SCRIPT_URI==");echo (getenv (REDIRECT_SCRIPT_URI));echo ("< br >");
echo ("HTTP_ACCEPT_LANGUAGE==");echo (getenv (HTTP_ACCEPT_LANGUAGE));echo ("< br >");
echo ("HTTP_REFERER==");echo (getenv (HTTP_REFERER));echo ("< br >");
echo ("REDIRECT_SCRIPT_URL==");echo (getenv (REDIRECT_SCRIPT_URL));echo ("< br >");
echo ("REMOTE_PORT==");echo (getenv (REMOTE_PORT));echo ("< br >");
echo ("HTTP_ACCEPT==");echo (getenv (HTTP_ACCEPT));echo ("< br >");
echo ("HTTP_USER_AGENT==");echo (getenv (HTTP_USER_AGENT));echo ("< br >");
echo ("GATEWAY_INTERFACE==");echo (getenv (GATEWAY_INTERFACE));echo ("< br >");
echo ("HTTP_HOST==");echo (getenv (HTTP_HOST));echo ("< br >");
echo ("SCRIPT_URI==");echo (getenv (SCRIPT_URI));echo ("< br >");
echo ("SCRIPT_NAME==");echo (getenv (SCRIPT_NAME));echo ("< br >");
echo ("SCRIPT_URL==");echo (getenv (SCRIPT_URL));echo ("< br >");
echo ("SERVER_NAME==");echo (getenv (SERVER_NAME));echo ("< br >");
echo ("REDIRECT_STATUS==");echo (getenv (REDIRECT_STATUS));echo ("< br >");
echo ("UNIQUE_ID==");echo (getenv (UNIQUE_ID));echo ("< br >");
echo ("HTTP_VIA==");echo (getenv (HTTP_VIA));echo ("< br >");
echo ("SCRIPT_FILENAME==");echo (getenv (SCRIPT_FILENAME));echo ("< br >");
echo ("PATH==");echo (getenv (PATH));echo ("< br >");
echo ("STATUS==");echo (getenv (STATUS));echo ("< br >");
echo ("SERVER_ADDR==");echo (getenv (SERVER_ADDR));echo ("< br >");
echo ("SERVER_PROTOCOL==");echo (getenv (SERVER_PROTOCOL));echo ("< br >");
echo ("HTTP_CONNECTION==");echo (getenv (HTTP_CONNECTION));echo ("< br >");
echo ("REDIRECT_DBENTRY==");echo (getenv (REDIRECT_DBENTRY));echo ("< br >");
echo ("SERVER_SIGNATURE==");echo (getenv (SERVER_SIGNATURE));echo ("< br >");
echo ("PATH_TRANSLATED==");echo (getenv (PATH_TRANSLATED));echo ("< br >");
echo ("PATH_INFO==");echo (getenv (PATH_INFO));echo ("< br >");
echo ("SERVER_ADMIN==");echo (getenv (SERVER_ADMIN));echo ("< br >");
echo ("SERVER_SOFTWARE==");echo (getenv (SERVER_SOFTWARE));echo ("< br >");
echo ("REMOTE_ADDR==");echo (getenv (REMOTE_ADDR));echo ("< br >");
echo ("DOCUMENT_ROOT==");echo (getenv (DOCUMENT_ROOT));echo ("< br >");
echo ("REQUEST_URI==");echo (getenv (REQUEST_URI));echo ("< br >");
echo ("REDIRECT_URL==");echo (getenv (REDIRECT_URL));echo ("< br >");
echo ("REQUEST_METHOD==");echo (getenv (REQUEST_METHOD));echo ("< br >");
echo ("SERVER_PORT==");echo (getenv (SERVER_PORT));echo ("< br >");
echo ("HTTP_REFERER==");echo (getenv (HTTP_REFERER));echo ("< br >");
?>
Как расшифровываются переменные окружения в PHP (SERVER, REDIRECT и др) и что они передают?
DOCUMENT_ROOT Путь к корневой папке сайта. Для локального веб-сервера значение может принимать вид z:/home/htmlbook.ru/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.tradebenefit.ru) и без него (tradebenefit.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 Запрос, который указан в адресной строке после вопросительного знака (?). Обычно пишется в форме «переменная=значение», где переменные разделяются между собой амперсантом. Рассмотрим пример.
& - амперсант. Разделитель передаваемых в URL переменных
http://tradebenefit.ru/?id=5&art=34
Будет возвращено значение id=5&art=34
REMOTE_ADDR IP-адрес посетителя сайта.
REQUEST_METHOD Метод отправки данных на сервер. По умолчанию применяется метод GET.
REQUEST_URI Адрес запрашиваемого документа. Отсчёт ведётся от корня сайта, т.е. для полного адреса http://tradebemnefit.ru/1.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).
Пример вывода переменной окружения в php
Вывод одной переменной делается так:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SSI</title>
</head>
<body>
<p>Ваш IP-адрес: <?php echo $_SERVER['REMOTE_ADDR']; ?></p>
</body>
</html>
А для вывода всех данных создаём цикл:
<?php
print "<!DOCTYPE html>\n<html>\n<head><title></title></head>\n<body>\n";
print "<table border=1>\n";
foreach ($_SERVER as $a => $b) print "<tr><td>$a</td><td>$b</td></tr>\n";
print "</table>\n";
print "</body>\n</html>\n";
?>
Можно создать массив с набором данных
<?php
$indicesServer = array('PHP_SELF',
'argv',
'argc',
'GATEWAY_INTERFACE',
'SERVER_ADDR',
'SERVER_NAME',
'SERVER_SOFTWARE',
'SERVER_PROTOCOL',
'REQUEST_METHOD',
'REQUEST_TIME',
'REQUEST_TIME_FLOAT',
'QUERY_STRING',
'DOCUMENT_ROOT',
'HTTP_ACCEPT',
'HTTP_ACCEPT_CHARSET',
'HTTP_ACCEPT_ENCODING',
'HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION',
'HTTP_HOST',
'HTTP_REFERER',
'HTTP_USER_AGENT',
'HTTPS',
'REMOTE_ADDR',
'REMOTE_HOST',
'REMOTE_PORT',
'REMOTE_USER',
'REDIRECT_REMOTE_USER',
'SCRIPT_FILENAME',
'SERVER_ADMIN',
'SERVER_PORT',
'SERVER_SIGNATURE',
'PATH_TRANSLATED',
'SCRIPT_NAME',
'REQUEST_URI',
'PHP_AUTH_DIGEST',
'PHP_AUTH_USER',
'PHP_AUTH_PW',
'AUTH_TYPE',
'PATH_INFO',
'ORIG_PATH_INFO') ;
echo '<table cellpadding="10">' ;
foreach ($indicesServer as $arg) {
if (isset($_SERVER[$arg])) {
echo '<tr><td>'.$arg.'</td><td>' . $_SERVER[$arg] . '</td></tr>' ;
}
else {
echo '<tr><td>'.$arg.'</td><td>-</td></tr>' ;
}
}
echo '</table>' ;
?>
Спасибо за внимание!