Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: $_REQUEST
 
 автор: Kit   (28.01.2006 в 16:50)   письмо автору
 
 

Господа, подскажите пожалуйста для чего нужен массив $_REQUEST и как его можно использовать?
Заранее спасибо.

   
 
 автор: PantiL   (28.01.2006 в 19:13)   письмо автору
 
   для: Kit   (28.01.2006 в 16:50)
 

$_REQUEST - Ассоциативный массив, состоящий из содержимого $_GET, $_POST, $_COOKIE и $_FILES.

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

   
 
 автор: Kit   (29.01.2006 в 09:31)   письмо автору
 
   для: PantiL   (28.01.2006 в 19:13)
 

Т.е., если например имеем $_GET['name'] = 2, то $_REQUEST['name'] тоже равна 2?
Или как тогда получить $_GET['name'] через $_REQUEST?
И почему использование $_REQUEST это плохой тон? Это небезопасно?

   
 
 автор: cheops   (29.01.2006 в 15:37)   письмо автору
 
   для: Kit   (29.01.2006 в 09:31)
 

Да всё правильно, с одной стороны не безопасно, с другой - есть большой шанс затереть переменные одного метода други. Скажем передаёте вы через GET-параметр name значение и одновременно создаёте cookie с таким же именем - одно из значений будет потеряно и отлавливать такие ошибки очень сложно.

   
 
 автор: WebTech   (29.01.2006 в 16:50)   письмо автору
 
   для: cheops   (29.01.2006 в 15:37)
 

А это можно отключить как-нибудь? Где-нибудь в конфигах?

   
 
 автор: cheops   (29.01.2006 в 23:43)   письмо автору
 
   для: WebTech   (29.01.2006 в 16:50)
 

Нет, но можно задать последовательность затирания, т.е. сначала в массив будут помещаться данные одного метода, потом другого...

   
 
 автор: WebTech   (30.01.2006 в 10:41)   письмо автору
 
   для: cheops   (29.01.2006 в 23:43)
 

Это в variables_order в php.ini? А какая буква отвечает за $_REQUEST? Ее надо в начало списка поставить?

   
 
 автор: cheops   (30.01.2006 в 13:59)   письмо автору
 
   для: WebTech   (30.01.2006 в 10:41)
 

За REQUEST не отвечает никакая из букв, так как метода REQUEST не существует, но можно определить параметры какого из методов будет помещаться первыми в суперглобальный массив $_REQUEST, а какие последними.

PS Ещё раз повторюсь, что использовать $_REQUEST крайне не рекомендуется, так как например, методом GET можно измененить значения в Cookie или сессии и отследить это очень сложно.

   
 
 автор: WebTech   (30.01.2006 в 15:30)   письмо автору
 
   для: cheops   (30.01.2006 в 13:59)
 

Извините, я запутался :-( Что определяет директива variables_order? Как установить "последовательность затирания"? И что такое все-таки $_REQUEST? Извините еще раз, но хочется понять до конца и докопаться до истины :-)

   
 
 автор: cheops   (30.01.2006 в 18:15)   письмо автору
 
   для: WebTech   (30.01.2006 в 15:30)
 

Директива variables_order определяет порядок в котором PHP регистрирует GET (G), POST (P), Cookie (C) параметры, переменные окружения (E) и встроенные переменные (S), слева на право. В этом же порядке помещаются в ключи в массив $_REQUEST.

   
 
 автор: WebTech   (31.01.2006 в 15:48)   письмо автору
 
   для: cheops   (30.01.2006 в 18:15)
 

Ясно. Спасибо :-)

   
 
 автор: Kit   (29.01.2006 в 16:53)   письмо автору
 
   для: cheops   (29.01.2006 в 15:37)
 

Все понятно. Спасибо большое!

   
 
 автор: cheops   (28.01.2006 в 22:22)   письмо автору
 
   для: Kit   (28.01.2006 в 16:50)
 

Добавлю лишь, что лучше его не использовать - это считается плохим тоном.

   
 
 автор: WebTech   (29.01.2006 в 08:21)   письмо автору
 
   для: cheops   (28.01.2006 в 22:22)
 

-

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования