И еще раз про register_globals ;)

Long

Новичок
И еще раз про register_globals ;)

Хотя в последнее время и снизился (практически прекратился) поток вопросов, связанных с устанокой register_globals в Off но возможно кому-то из начинающих такой совет поможет - если нет сил, как хочется не обращаться к переменным напрямую, можно написать маленький файлик и инклюдить его в самом начале страницы. текст файлика примерно такой:
<?
foreach($_REQUEST as $k=>$v){
if(!@Isset($$k)) {
$$k=$v;
global $$k;
}
}
?>
аналогично можно поступить с переменными окружения $_SERVER.

Это не в коей мере не является рекомендацией к использованию, но часто может помочь в адаптации кода под выключную глобализацию.
 

tony2001

TeaM PHPClub
1) для этих целей есть [m]export[/m]
2) сама цель совета - ересь по определению. за что боролись, на то и напоролись.
 

Long

Новичок
2 tony2001 цель совета - быстро адаптировать код с наименьшими потерями в его работоспособности.
если же внимательно прочитать, то увидим - "Это не в коей мере не является рекомендацией к использованию..."
По поводу "за что боролись, на то и напоролись" - отключение регистрации принесло больше вреда, чем пользы.
Кстати, маленькое лирическое отступление. давайте вспомним, когда пхп по умолчанию ставился с включенным Register Globals, на многих ли хостерах это "умолчание" переставляли? Я не встречал таких... А сейчас? ИМХО - это лень сисадмина прекрываемая "заботой о защите".
PS. Вариант с extract однозначно лучше, просто то, который привел - более наглядный что ли ;)
 

tony2001

TeaM PHPClub
>По поводу "за что боролись, на то и напоролись" - отключение регистрации принесло больше вреда, чем пользы.
много возмущений - да, согласен.
но конечный результат - это имхо все-таки более секурный код и меньшее количество неуловимых багов.
 

RomikChef

Guest
Это не в коей мере не является рекомендацией к использованию
Я не понимаю этой логики.
ЗАЧЕМ что-то писать, если ты не рекомендуешь это делать????

Про вопрос, "Зачем что-то писать, не заглянув сначала в ФАК" - я уже и не заикаюсь..


Тони :) Это ж PHP! Тут на каждый чих своя функция.
Встречайте!
[m]import_request_variables[/m]
 

Long

Новичок
2 RomikChef мдя... наглядный пример: век живи - век учись ;)сенкс.
 

Crazy

Developer
Меж тем, идея, описанная в первом сообщении, хороша возможностью гибкой обработки переменных. К примеру, можно к радости некоторых товарищей отучить PHP принимать данные из URL при POST-запросах. :)

Или реализовать светлую мечту части человечества "а вот хочу, чтобы переменные из формы сами попадали в сессию".

Ну и другие изощрения. :)
 

RomikChef

Guest
Совершенно верно.
Только к регистер глобалс оно не имеет отношения.
Перебирать форичем ПОСТ - это так же привычно, как есть, или спать. Независимо от значения регистер глобалс.

К тому же, приведенная конструкция несет в себе опасность, описанную в [f]slashes[/f], который опять почему-то у меня не открывается :-(

Если делаешь $$k, или extract, то после этого ОБЯЗАТЕЛЬНО
extract($_SERVER);
 

RomikChef

Guest
Крейзи, твою рецензию, на сей текст (он есть в служебке), кстати, очень хотелось бы услышать
 
Сверху