Распечатаем некоторые переменные всегда доступные в Ваших скриптах. Все они взяты из самого простого скрипта <?php phpinfo(); ?>
$_SERVER['DOCUMENT_ROOT'] /var/www/omsk/data/www/f9r.ru
$_SERVER['HTTP_ACCEPT'] text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8
$_SERVER['HTTP_ACCEPT_CHARSET']
$_SERVER['HTTP_ACCEPT_ENCODING'] gzip,deflate,sdch
$_SERVER['HTTP_ACCEPT_LANGUAGE'] ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
$_SERVER['HTTP_CONNECTION'] close
$_SERVER['HTTP_HOST'] f9r.ru
$_SERVER['HTTP_KEEP_ALIVE']
$_SERVER['HTTP_REFERER'] http://f9r.ru/phpaz.html
$_SERVER['HTTP_USER_AGENT'] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36
$_SERVER['PATH'] /usr/local/bin:/usr/bin:/bin
$_SERVER['REMOTE_ADDR'] 46.247.241.197
$_SERVER['REMOTE_PORT'] 55373
$_SERVER['SCRIPT_FILENAME'] /var/www/omsk/data/www/f9r.ru/all.php
$_SERVER['SERVER_ADDR'] 188.138.124.199
$_SERVER['SERVER_ADMIN'] admin@f9r.ru
$_SERVER['SERVER_NAME'] f9r.ru
$_SERVER['SERVER_PORT'] 80
$_SERVER['SERVER_SIGNATURE']
Apache/2.2.16 (Debian) Server at f9r.ru Port 80
$_SERVER['SERVER_SOFTWARE'] Apache/2.2.16 (Debian)
$_SERVER['GATEWAY_INTERFACE'] CGI/1.1
$_SERVER['SERVER_PROTOCOL'] HTTP/1.0
$_SERVER['REQUEST_METHOD'] GET
$_SERVER['QUERY_STRING'] variable.html
$_SERVER['REQUEST_URI'] variable.html
$_SERVER['SCRIPT_NAME'] /all.php
$_SERVER['PHP_SELF'] /all.php
Броузер посылает на сервер запрос странички и одновременно несколько переменных передаёт серверу. Эти переменные появляются в скрипте после запроса, полученного от броузера. Покажем переменные полученные от брозера пользователя, они всегда "сидят в скрипте", Вы всегда имеете к ним доступ:
$_SERVER['HTTP_ACCEPT']
Показывает какие форматы файлов броузер может принимать и показывать пользователю.
$_SERVER['HTTP_ACCEPT_CHARSET']
Показывает какая кодировка броузера пользователя по умолчанию.
$_SERVER['HTTP_ACCEPT_ENCODING']
Показывает, готов ли броузер пользователя принимать сжатые html странички, для последующего их трансформирования в читабельный вид.
$_SERVER['HTTP_ACCEPT_LANGUAGE']
Показывает какой язык принят по умолчанию на броузере пользователя.
$_SERVER['HTTP_CONNECTION']
Показывает каким способом броузер соединился с сервером
$_SERVER['HTTP_CACHE_CONTROL']
Показывает разрешено ли кэширование страничек броузером пользователя.
$_SERVER['HTTP_KEEP_ALIVE']
Показывает через какое время броузер разорвёт соединение по умолчанию.
$_SERVER['HTTP_REFERER']
Показывает с какой странички пришёл броузер пользователя.
$_SERVER['HTTP_USER_AGENT']
Показывает информацию о самом броузере пользователя, его операционной системе.
Эти переменные бывают пусты, то есть некоторые броузеры не посылают некоторые заголовки, но всё - равно, данные переменные являются мощным средством в ведении статистики посещения сайта и настройки Ваших скриптов.
То есть, что хотелось подчеркнуть, есть переменные посылаемые броузером пользователя, и все переменные можно взять (то есть, если вы не знаете как они обозначаются) через просмотр функции phpinfo(). Просто, не брезгуйте, и иногда заглядывайте в нее, вот и все... Там лежат все переменные доступные в данный момент Вашему скрипту. Как это сделать?
Очень просто:
<?php
// Ваш рабочий скрипт сверху, а затем
phpinfo ();
?>
Или сразу:
<?php
// Ваш рабочий скрипт сверху, а затем
print "<br>\n".
$_SERVER['HTTP_ACCEPT'] ."<br>\n".
$_SERVER['HTTP_ACCEPT_CHARSET'] ."<br>\n".
$_SERVER['HTTP_ACCEPT_ENCODING'] ."<br>\n".
$_SERVER['HTTP_ACCEPT_LANGUAGE'] ."<br>\n".
$_SERVER['HTTP_CONNECTION'] ."<br>\n".
$_SERVER['HTTP_CACHE_CONTROL'] ."<br>\n".
$_SERVER['HTTP_KEEP_ALIVE'] ."<br>\n".
$_SERVER['HTTP_REFERER'] ."<br>\n".
$_SERVER['HTTP_USER_AGENT'] ."<br>\n";
?>
более подробно о phpinfo читать здесь...
Мы рассмотрели Глобальные переменные, доступные всегда, но есть и те, которые посылаем мы сами на сервер, с ними могут быть проблемы.
Если сервер php не принимает посылаемую переменную, то это значит совсем другое... Он её принимает, но у него отключена поддержка так называемых Глобальных переменных. Это касается Php 5, в котором упор сделан на безопасность. Чтобы все переменные переданные на сервер извне были доступны скрипту, надо вначале файла .php прописать строки:
<?php
// теперь все Сookie доступны
if ( isset ( $_COOKIE ) ){ foreach ( $_COOKIE as $key=>$val ) { $$key=$val; } }
// теперь все Get запросы доступны
if ( isset ($_GET )) { foreach ( $_GET as $key=>$val) { $$key=$val; } }
// теперь все Post запросы доступны
if ( isset ( $_POST ) ) { foreach ( $_POST as $key=>$val ) { $$key=$val; } }
?>