PHP:会话变量的范围 - 禁用cookie

时间:2011-02-27 13:04:57

标签: php

我是否正确假设会话变量在同一页面上可用,即使cookie已关闭?

我的脚本中需要一个全局数组(不是跨页面,只在当前脚本中)。在脚本上注册时:

$_SESSION['test'] = array('ok');

然后$ _SESSION ['test']在每个包含的文件,函数和类中都会'ok',即使cookie被删除了吗?

感谢您的建议。

3 个答案:

答案 0 :(得分:3)

如果您想要使用$GLOBALS全局变量。当然,更好的方法是重构代码并将所需的值作为参数传递。

但是,没有cookie,会话也是可能的。然后会话ID不存储在cookie中,而是传递给URL。但为什么要“滥用”会议?

More information about variable scope

答案 1 :(得分:0)

是的,即使cookie被禁用。 你可以在你的程序中调用你的会话,如果你想取消会话,那么你需要使用

unset($_SESSION['test']);

另一天,我删除了所有的cookie,并且我的页面中的变量会话已经开启..直到我取消它...

unset可用于GLOBALS和您想要销毁的所有变量。

要销毁注册到会话的所有数据,请使用session_destroy  在这种情况下,会话变量仍然存在但是为空。

那就是全部!!

答案 2 :(得分:0)

我认为你需要阅读会议的内容。只要session_start()是您的第一行代码,php中的会话就可以在任何页面上使用。然后,任何设置的会话变量都可以在任何页面上访问,直到用户结束会话,通常是关闭浏览器。禁用cookie不会妨碍您使用会话。