Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Каким поисковиком вы пользуетесь ?

Google.ru
Google.com
Rambler
Mail.ru
WebAlta
Яндекс
Апорт
Yahoo
Gogo.ru
Другим


Результаты
Другие опросы

Всего голосов: 1715
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Переменные окружения в PHP или как узнать всё о посетителе

Речь пойдет о новой версии самого популярного в настоящее время языка написания сценариев для сервера - РНР 5. Этот язык позволяет разрабатывать высокопроизводительные Web-сайты любого масштаба и любой категории сложности. Рассматриваются такие вопросы, как синтаксические конструкции языка, объектно-ориентированное программирование на РНР, работа с базами данных и графическими изображениями, а также построение WAP-содержимого. Большое внимание уделяется эффективным решениям типовых практических задач на PHP, среди которых аутентификация посетителей, шифрование данных, использование сеансов, обработка ошибок, работа с электронной почтой. Какие данные можно получить о посетителе сайта при помощи php (браузер, ip, url и другое) или сервере (имя, почта и другое)?

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://site.ru/?id=5&art=34
Будет возвращено значение id=5&art=34



REMOTE_ADDR - IP-адрес посетителя сайта.
REQUEST_METHOD - Метод отправки данных на сервер. По умолчанию применяется метод GET.
REQUEST_URI - Адрес запрашиваемого документа. Отсчёт ведётся от корня сайта, т.е. для полного адреса http://site.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-адрес: echo $_SERVER['REMOTE_ADDR']; </p>
</body>
</html>



А для вывода всех данных создаём цикл:

PHP - Код

 
print "<!DOCTYPE html>&#092;n<html>&#092;n<head><title></title></head>&#092;n<body>&#092;n";
 print 
"<table border=1>&#092;n";
 foreach (
$_SERVER as $a => $b) print "<tr><td>$a</td><td>$b</td></tr>&#092;n";
 print 
"</table>&#092;n";
 print 
"</body>&#092;n</html>&#092;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>' 



Спасибо за внимание!



Нет комментариев. Почему бы Вам не оставить свой?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



Статьи и обзоры PHP Переменные окружения в PHP или как узнать всё о посетителе Какие данные можно получить посетителе сайта при помощи браузер другое или сервере имя почта Код echo& nbsp " REDIRECT_UNIQUE_ID==" getenv& REDIRECT_UNIQUE_ID & br&