Глобальные массивы в PHP

Глобальные массивы в PHP

Индекс материала
Глобальные массивы в PHP
Глобальные массивы в PHP стр.2
Все страницы

php

Гениальность PHP – в той простоте, с которой он позволяет интегрировать в программу переменные форм. Это делает веб-программирование приятным и простым – от вывода формы и ее обработки до вывода результатов. В HTTP нет встроенного механизма, который позволял бы сохранять информацию при переходе от одной страницы к другой. Причина этого в том, что HTTP не сохраняет свое состояние между запросами.

Обработка информации, получаемой от пользователя, одна из важнейших задач. Вы никогда не должны доверять данным, доставленным пользователем, поэтому обязательной является проверка достоверности всех полей, даже скрытых элементов формы.

Существует много способов проверки корректности данных – от проверки информации на соответствие определенному критерию, до преобразования сущностей HTML в escape - последовательности, что позволяет безопасно отображать информацию, вводимую пользователем.

После этого все эти данные становятся доступными посредством обращения к следующим массивам:$_GET, $_POST, $_FILES, $_COOKIE, $_SERVER и $_ENV. Они содержат, соответственно, все переменные, установленные запросами GET, запросами POST, загруженными файлами, cookies, веб сервером и окружением. Кроме того, есть массив $_REQUEST, содержащий пришедшие от пользователя данные – GET, POST и cookies.

Если два массива содержат ключ с одним и тем же именем, то при размещении элементов внутри массива $_REQUEST PHP поступает в соответствии с параметром конфигурации variables_order. По умолчанию variables_order равна "EGPCS" (Environment, GET, POST, Cookie, Server). Поэтому PHP сначала добавляет в массив $_REQUEST переменные окружения, а затем добавляет переменные GET, POST, cookie и переменные веб сервера в указанном порядке.

Например, если по умолчанию C идет после P, то cookie с именем username переписывает переменную POST с именем username. Если у вас нет доступа к файлу конфигурации PHP, то проверить установку переменной можно с помощью функции ini_get():


  print ini_get('variables_order');

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

Эти параметры можно также просмотреть посредством функции phpinfo(). Однако если нельзя полагаться на значение опции variables_order, то надо обратиться непосредственно к массивам $_GET и $_POST, вместо того чтобы использовать массив $_REQUEST.

Массивы, содержащие внешние переменные, такие как $_REQUEST, являются суперглобальными.

Это означает, что их не требуется объявлять как global внутри функции или класса. Это также означает, что, вероятно, вы не должны присваивать что нибудь этим переменным, иначе вы перепишете хранимую в них информацию.
До версии PHP 4.1 эти суперглобальные переменные не существовали.

Вместо них были обычные массивы с именами:

  • $HTTP_COOKIE_VARS,
  • $HTTP_ENV_VARS,
  • $HTTP_GET_VARS,
  • $HTTP_POST_VARS,
  • $HTTP_POST_FILES
  • $HTTP_SER VER_VARS

Эти массивы все еще доступны в целях совместимости, но с новыми массивами работать проще. Эти более старые массивы заполняются, только если параметр конфигурации track_vars установлен в on, но начиная с версии PHP 4.0.3 эта возможность включена всегда.



Добавить комментарий


Защитный код
Обновить



Кто на сайте
Сейчас 90 гостей онлайн