php会话变量wierd行为

php会话变量wierd行为,php,session,variables,Php,Session,Variables,我正在PHP中设置一个会话变量,如下所示: $_SESSION['pass'] = $pass; 其中,$pass是一些密码,即,“test4;”左侧的会话变量工作正常,但令我惊讶和担心的是,右侧的$pass似乎也是一个会话变量,即一旦设置,我可以从任何页面回显$pass,它似乎一直持续到我销毁会话为止 有什么好处?我怎样才能防止这种情况 谢谢 可能已打开-这是一个巨大的安全风险!检查情况是否属实,并确保已关闭。而且,它是一种不推荐使用的方法 如果启用了register_globals

我正在PHP中设置一个会话变量,如下所示:

    $_SESSION['pass'] = $pass;
其中,
$pass
是一些密码,即,
“test4;”
左侧的会话变量工作正常,但令我惊讶和担心的是,右侧的
$pass
似乎也是一个会话变量,即一旦设置,我可以从任何页面回显
$pass
,它似乎一直持续到我销毁会话为止

有什么好处?我怎样才能防止这种情况

谢谢

可能已打开-这是一个巨大的安全风险!检查情况是否属实,并确保已关闭。而且,它是一种不推荐使用的方法

如果启用了register_globals,则可以通过在php.ini中更改此设置或将其放置在.htaccess文件中:

php_flag register_globals off
可能已打开-这是一个巨大的安全风险!检查情况是否属实,并确保已关闭。而且,它是一种不推荐使用的方法

如果启用了register_globals,则可以通过在php.ini中更改此设置或将其放置在.htaccess文件中:

php_flag register_globals off

您正在将会话和$pass分配为彼此相等。试着使用

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

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

,您将会话和$pass分配为彼此相等。试着使用

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

无论您想验证什么信息,

那么,
$pass
从何而来?您是在启用的情况下运行的吗?也许在某个地方您将会话变量分配给了
$pass
。那么,
$pass
从何而来?您是在启用的情况下运行的吗?也许在某个地方您将会话变量分配给了
$pass
。我真的不明白这与OP的问题有什么关系?他说的是$pass(不是他的$u会话['pass'])到处都有。我真的不明白这和OP的问题有什么关系?他说的是$pass(不是他的$u会话['pass'])到处都有。我在哪里可以找到这个?该站点远程托管在共享服务器上,但我可以访问某些设置。
phpinfo()-它告诉您所有需要知道的信息。是,已打开register globals。你知道如何关闭它吗?在什么文件中?我得到一个内部服务器错误更新:在htaccess文件中添加上述标志导致php停止工作。但是,“我的主机”允许您在控制面板中编辑php.ini文件,并且有一个将register_globals从打开转到关闭的设置。这就成功了,解决了问题。谢谢我在哪里能找到这个?该站点远程托管在共享服务器上,但我可以访问某些设置。
phpinfo()-它告诉您所有需要知道的信息。是,已打开register globals。你知道如何关闭它吗?在什么文件中?我得到一个内部服务器错误更新:在htaccess文件中添加上述标志导致php停止工作。但是,“我的主机”允许您在控制面板中编辑php.ini文件,并且有一个将register_globals从打开转到关闭的设置。这就成功了,解决了问题。谢谢