Странное поведение PHP-сессии.PHP перезаписывает $ _SESSION ['var'] с помощью $ var - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть небольшой PHP-скрипт:

<?php
session_start();

$var = array();
$var['key'] = 'Var -> Key';

if ($_GET['set']) {
  $_SESSION = array();
  $_SESSION['var'] = 'Session -> Var';
}
print_r($_SESSION);
?>

Я ожидаю, что он вернет это, для set = 0 и set = 1:

Array
(
    [var] => Session -> Var
)

Однако он возвращает это дляset = 0 (после set = 1, конечно):

Array
(
    [var] => Array
        (
            [key] => Var -> Key
        )

)

Посмотрите здесь: http://dev.gruppenunterkuenfte.de/index_test.php?set=1

Что должно произойти, это то, что $ _SESSION ['var']заменяется на $ var.Но только после загрузки следующей страницы.

Есть идеи почему?

Я могу переключить свою версию PHP в интерфейсе администратора моего хостера, и я попробовал 5.2.11, 5.3.2 и 4.4.8.

Это настройка, которую я могу изменить в PHP, чтобы она не перезаписывала переменные сеанса?Причина У меня нет этой проблемы на другом сервере.

Похоже, что есть какие-то настройки, чтобы PHP записывал $ var в $ _SESSION ['var'], если $ _SESSION ['var']определены. * * тысяча двадцать-одна

Ответы [ 2 ]

3 голосов
/ 10 сентября 2010

Отключить register_globals опция

1 голос
/ 10 сентября 2010

ничего странного, это задокументированное поведение.
просто выключить register_globals выключить

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