如果变量发生变化,PHP会话会

时间:2014-10-01 12:54:43

标签: php session

我遇到了一个奇怪的情况:

首先我将变量分配给会话然后我更改它。然后,当我更改变量时,会话会更改,即使我没有将值重新分配给会话:

示例(session1.php)

session_start();
$var_test = "first session value";
$_SESSION['var_test'] = $var_test;
echo "$_SESSION['var_test'];

// this will show "first session value"

第二个php文件(session2.php)

session_start();
$var_test = "second session value !!!";
echo $_SESSION['var_test'];

// this shows "second session value !!!";

在session1.php中它显示“第一个会话值”,这是非常好的,但在第二个php文件(session2.php)中显示“第二个会话值”。

即使我没有分配$ _SESSION ['var_test'] = $ var_test,它怎么会自动改变?

这是一个错误还是它的工作原理?

1 个答案:

答案 0 :(得分:1)

这可能是由php ini中的register_globals = on引起的。 (如果您使用的是旧的PHP版本)

在.htaccess文件(位于文档根目录中)中尝试此操作:

php_flag register_globals off. 

(如果您有权访问我们:在php.ini中更改它);

register_globals是一个糟糕的写入php应用程序的安全威胁。