У меня баг с сессиями! ... оно что так и должно быть?

hAckmAnPHP

Guest
У меня баг с сессиями! ... оно что так и должно быть?

вот пример
1-ый файл

PHP:
<?
session_start();
$_SESSION['test'] = 1;
echo $_SESSION['test'];
?>
создает переменную тест test в сессие со значением 1 и выводит на экран

2-ой файл

PHP:
<?
session_start();
echo $_SESSION['test'] . '<br>';
$test = 2;
echo $_SESSION['test'] . '<br>';
?>
вызываю 1ый файл, вывод:
1

вызываю второй файл, вывод:
1
2

еще раз 2-ой файл, вывод:
2
2

...ну и так далее...

почему $test = 2; затирает переменную $_SESSION['test'] ??
ведь так не должно быть, я проверял с другими массивами (_GET _POST _COOKIE) там такого эфекта нет

можноли это как-то отключить?
 

Сергей123

Новичок
Я бы просто посоветовал работать с сессионными переменными через $_SESSION, а несессионным не давать имён, совпадающих с используемыми ключами массива $_SESSION.
 

Сергей123

Новичок
А о причине, - видимо у тебе включено register_globals.

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

ttrehl

Guest
насколько я понимаю массив $_SESSION содержит в себе данные с ключами равными именам зарегистрированных переменных, и когда происходит изменение переменной, массив также меняет соответствующее значение, на то она и сессия, register_globals тут может быть и не при чем, но это всего-лишь мое мнение... знающие поправят...
 

ttrehl

Guest
Автор оригинала: Nimous
Считай, что поправили.
обоснуйте пожалуйста... своими словами, не ссылками, если я что-то неправильно понимаю, хочу понимать правильно...
 

Nimous

Guest
Я имел в виду, чо register_globals тут как-раз "причём".
Запусти этот скрипт с разными значениями register_globals, и сам всё увидишь
----------------------------
session_start();
$_SESSION['test1']=1;
//echo"<pre>";print_r($_SESSION);echo"</pre>";
$_SESSION['test2']=2;

$test1=2;

echo"<pre>";print_r($GLOBALS);echo"</pre>";
 

Фанат

oncle terrible
Команда форума
ttrehl
вот именно то, что ты написал - ты и понимаешь неправильно.
Какие тебе ещё обоснования нужны?
 

ttrehl

Guest
Автор оригинала: Фанат
ttrehl
вот именно то, что ты написал - ты и понимаешь неправильно.
Какие тебе ещё обоснования нужны?
Ваши... просто скажите - как правильно понимать?
 

Фанат

oncle terrible
Команда форума
по ссылочке НАПИСАНО.
потрудись пойти, на конец, и прочесть.
 

master_x

Pitavale XXI wieku
запомни одну вещь: создавать переменные с именами, совпадающими с ключами массива $_SESSION не рекомендуется!
Вот и все.
 
Сверху