Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Предопределённые переменные PHP

Источник: realcoding.net

Серверные переменные: $_server
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_server_vars.

$_server это массив, содержащий такую информацию, как headers/шапки, paths/пути и размещение скриптов. Вхождения в этом массиве создаются web-сервером. Нет гарантии, что каждый web-сервер будет предоставлять что-нибудь из этого; сервер может опустить позиции, указанные здесь, или добавить новые, здесь не указанные. Насчитывается большое количество этих переменных для спецификации cgi 1.1, поэтому вы должны это учитывать.

Это суперглобальная, или автоматическая, переменная. Это просто означает, что она доступна во всех областях видимости в скрипте. Вы не должны вводить global $_server; для доступа к ней внутри функций или методов, как это делается с $http_server_vars.

$http_server_vars содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что http_server_vars и $_server это разные переменные и что php обрабатывает их по-разному.)

Если директива register_globals установлена, то эти переменные также станут доступны в глобальной области видимости скрипта; т.е. независимо от массивов $_server и $http_server_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

Вы можете или можете не найти следующие переменные элементы в $_server. Обратите внимание, что лишь некоторые (если вообще какие-нибудь) из этих элементов будут доступны (или будут иметь иное значение) при запуске php из командной строки.

php_self
Имя файла исполняемого в данный момент скрипта; относительно document root. Например, $_server[php_self] в скрипте с адресом http://example.com/test.php/foo.bar даст /test.php/foo.bar.

Если php запущен как процессор командной строки, эта переменная недоступна.

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

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

gateway_interface
Какой вариант спецификации cgi используется сервером; например, cgi/1.1.

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

server_software
Строка-идентификатор сервера, даваемая в шапках/headers при ответах на запросы.

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

request_method
Какой метод запроса был использован для доступа к странице; например, get, head, post, put.

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

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

http_accept
Содержимое шапки accept: из текущего запроса, если имеется.

http_accept_charset
Содержимое шапки accept-charset: из текущего запроса, если имеется. Пример: iso-8859-1,*,utf-8.

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

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

http_connection
Содержимое шапки connection: из текущего запроса, если имеется. Пример: keep-alive.

http_host
Содержимое шапки host: из текущего запроса, если имеется.

http_referer
Адрес страницы (если имеется), которая направила пользовательский агента (ПА) на текущую страницу. Устанавливается ПАгентом. Не все ПА будут его устанавливать, а некоторые могут модифицировать 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
Путь к текущему скрипту. Это используется в страницах, которым нужно указывать на самих себя.

request_uri
uri, который был задан для доступа к данной странице; например, /index.html.

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

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

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

Переменные окружения: $_env
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_env_vars.

Эти переменные импортируются в глобальное пространство имён php из окружения, в котором запущен разборщик (интерпретатор) php. Многие предоставляются оболочкой, под которой php работает, а разные системы запускают, очевидно, разные виды оболочек, поэтому создать какой-то определённый список невозможно. Просмотрите в документации вашей оболочки список определённых переменных окружения.

Другие переменные окружения - это cgi-переменные, помещаемые сюда независимо от того, запущен php как серверный модуль или как cgi-процессор.

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_env; для доступа к ней в функциях или методах, как вы делаете с $http_env_vars.

$http_env_vars содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что http_env_vars и $_env это разные переменные и что php обрабатывает их по-разному.)

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_env и $http_env_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

http-Куки: $_cookie
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_cookie_vars.

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

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_cookie; для доступа к ней в функциях или методах, как вы делаете с $http_cookie_vars.

$http_cookie_vars содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что http_cookie_vars и $_cookie это разные переменные и что php обрабатывает их по-разному.)

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_cookie и $http_cookie_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

http get-Переменные: $_get
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_get_vars.

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

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_get; для доступа к ней в функциях или методах, как вы делаете с $http_get_vars.

$http_get_vars содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что http_get_vars и $_get это разные переменные и что php обрабатывает их по-разному.)

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_get и $http_get_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

http post-Переменные: $_post
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_post_vars.

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

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_post; для доступа к ней в функциях или методах, как вы делаете с $http_post_vars.

$http_post_vars содержит ту же самую начальную информацию, но это не автоглобал. (Обратите внимание, что http_post_vars и $_post это разные переменные и что php обрабатывает их по-разному.)

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_post и $http_post_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

Переменные http-загрузки файлов: $_files
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_post_files.

Ассоциативный массив элементов, загружаемых в текущий скрипт методом http post. Автоматически глобальны в любой области видимости.

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_files; для доступа к ней в функциях или методах, как вы делаете с $http_post_files.

$http_post_files содержит ту же самую информацию, но не является автоглобалом.

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_files и $http_post_files. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

Переменные запроса: $_request
Примечание: введены в версии 4.1.0. В предыдущих версиях эквивалентного массива нет.

Ассоциативный массив, состоящий из содержимого $_get, $_post, $_cookie и $_files.

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_request; для доступа к ней в функциях или методах.

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массива $_request. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

Переменные сессии: $_session
Примечание: введены в версии 4.1.0. В предыдущих версиях используйте $http_session_vars.

Ассоциативный массив, содержащий переменные сессии, доступные текущему скрипту. См. также Функции сессий.

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $_session; для доступа к ней в функциях или методах, как вы делаете с $http_session_vars.

$http_session_vars содержит ту же самую информацию, но не является автоглобалом.

Если директива register_globals установлена, то эти переменные также становятся доступны в глобальной области скрипта; то есть независимо от массивов $_session и $http_session_vars. Дополнительно см. главу о безопасности Использование register_globals. Эти отдельные глобалы не являются автоглобалами.

Глобальные переменные: $globals
Примечание: $globals доступны начиная с php 3.0.0.

Ассоциативный массив, содержащий ссылки на все переменные, которые определены в данный момент в глобальной области видимости скрипта. Имена переменных являются ключами в массиве.

Это суперглобальная (или автоматическая глобальная) переменная. Это значит, что она доступна во всех областях видимости скрипта. Вам не нужно записывать global $globals; для доступа к ней в функциях или методах.

Предыдущее сообщение об ошибке: $php_errormsg
$php_errormsg это переменная, содержащая текст последнего сообщения об ошибке, сгенерированной php. Эта переменная доступна только в той области видимости, в которой ошибка возникла, и только если опция конфигурации track_errors включена/on (по умолчанию она - off).



Похожие статьи:
- Анализ посещаемости сайта рефералами
- SSI для бедных
- Защита сайта от скачивания
- Справочник по мета тегам
- AJAX? Atlas!
- MySQL для пользователя
- Использование команды UNION
- Безопасность при работе с WebMoney
- Движок для сайта своими руками. Часть вторая
- Пишем простейший текстовой счётчик
- Критерии выбора СУБД при создании информационных систем
- Применение класса myXTree
- Закачка файлов через PHP. Экономия.


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.003]