register_globals On или Off ...Вот в чем вопрос!

DoctorD

Guest
register_globals On или Off ...Вот в чем вопрос!

Если ставить Off то как из формы значения забирать и вообще как правильнее пользоваться...

Сорри если подобная тема есть в факах
 

HEm

Сетевой бобер
скрипт написанный под register_globals on будет так же работать и под off, обратное утверждение, строго говоря, неверно
 

DoctorD

Guest
Сносите топ...разобрался...в факах все есть... вроде...

-~{}~ 29.06.04 11:37:

HEm
не верю! :))
Вот те пример
делаем сабмит батон с именем $subName

и пишем такой скрипт
<?PHP
if (isset($subName)){
... действия
}
?>

при globals On - работает при Off... я не уверен

-~{}~ 29.06.04 11:38:

При офе вроде нада его доставать из $_GET['subName']

-~{}~ 29.06.04 11:39:

Ну или $_POST['subName']
 

HEm

Сетевой бобер
сорри, перепутал местами, читать следует так:
скрипт написанный под register_globals off будет так же работать и под on, обратное утверждение, строго говоря, неверно
 

fixxxer

К.О.
Партнер клуба
Второе иллюстрировать смысла особо нет, ибо очевидно. Контрпример для первого:

PHP:
$user = isset($_GET['user']) ? $_GET['user'] : false;
session_start();
$_SESSION['user'] = "root";
echo $user;
 

Profic

just Profic (PHP5 BetaTeam)
fixxxer
Фанат
Это вы про неинициализированные переменные?
 

fixxxer

К.О.
Партнер клуба
Тьфу ты, спросонья первое со вторым перепутал. :) Приведен пример скрипта, написанного для globals=off, работающий не так, как ожидается, при globals=on.

Для тех, кто в танке - при тестировании нажмите Refresh :)

Возможны и другие примеры, например, с путаницей гета и поста. Но это самая частая ошибка - я, помнится, по похожей причине тормозил, почему мой скрипт, использующий сессии, не работает при globals=on. :)
 

KR

alive in new life
Я тоже наступал на грабли фиксера
очень долго не мог понять почему слетает сессия при register_globals on.
Оказалось, что в $GLOBALS был массив с именем сессии.
 

HEm

Сетевой бобер
для того чтобы такого не случалось надо брать за правило не дублировать имена переменных в разных массивах

-~{}~ 29.06.04 10:55:

имеются в виду массивы из "EGPCS" и $GLOBALS
 

fixxxer

К.О.
Партнер клуба
Кстати говоря. Вот он тот случай, когда имеет смысл ini_set('register_globals', 0) - и, более того, хотелось бы иметь register_globals CHANGABLE_ALL.

Гипотетический пример полезного использования (естественно, не сработает, ибо register_globals changeable PHP_INI_PERDIR|PHP_INI_SYS):
PHP:
$a = 'foo';
ini_set('register_globals', 0);
session_start();
$_SESSION['a'] = isset($_SESSION['a']) ? $_SESSION['a']+1 : 0;

var_dump($_SESSION['a']);
var_dump($a);
 
Сверху