php会话变量奇怪的行为

时间:2012-06-08 13:09:21

标签: php session variables

我在PHP中设置会话变量如下:

    $_SESSION['pass'] = $pass;

其中$pass是一些密码,即。 "test4;"左侧的会话变量工作正常,但我发现我的鄙视和担心右侧的$pass似乎也是一个会话变量,也就是说,一旦设置,我就可以回声来自任何页面的$pass,它似乎一直存在,直到我销毁会话。

是什么给出的?我该如何防止这种情况?

谢谢!

2 个答案:

答案 0 :(得分:4)

Register globals可能正在开启 - 这是一个巨大的安全风险!检查是否是这种情况,并确保它已关闭。此外,这是一种弃用的方法。

如果启用了register_globals,您可以通过在.htaccess文件中将此设置更改为php.ini OR turn it off

php_flag register_globals off

答案 1 :(得分:-1)

您正在分配会话,并且$ pass彼此相等。尝试使用

if(!isset($_SESSION['pass']))

使用您想要验证的任何信息