确定有很多“简单会话”的问题,但我似乎无法找到我所追求的。由于PHP文档似乎没有解释得那么好,所以它让我感到有些不适。PHP的session_destroy和会话范围?
三折的问题。
它说,session_destroy()会清除会话数据而不是全局变量。所以它抹去了数据,但变量仍然保持机智?文档对全局变量意味着什么?
有哪些不同类型的,我可以用它来破坏会话数据的方式,是不是session_destroy就够了吗?为什么要使用下面的编码,因为我已经看到了一些代码示例:
session_start(); $_SESSION = array(); session_destroy();
会议似乎整个浏览器实例坚持。例如,当两个独立的浏览器打开时,IE9将保持相同的会话ID。与Chrome相同。只有当我关闭所有的浏览器时,我是否会得到一个新的会话ID。这对所有浏览器来说都是如此吗?我想知道,这样我可以在我的编码过程中记住这一点 - 不想后来发现,一些浏览器是不是永久的,我的代码,认为它,然后运行时产生各种错误的风险。
在此先感谢任何人可以帮助我回答这些问题。
有关问题2:你能澄清“基本够用”?如果足够你的意思是从内存中清除数据,我不认为需要用另一行代码复制这个动作。但是,如果你说它不从内存中清除,那么首先清空它是有意义的。关于问题3的 :当我关闭所有浏览器时,我得到一个新的会话ID。因此,由于推论的原因,当所有浏览器都关闭时,我会失去PHP使用的任何cookie - 因此它不再持久?谢谢。 – chaser 2012-07-31 13:22:15
我编辑了我的答案,以澄清它 – MarcDefiant 2012-07-31 13:56:30
@Morgria我仍然不确定问题2.我做了更多的测试,看来session_destroy不会立即清除数据。我能够在session_destroy之后仍然访问会话数据。但是,只要我刷新页面,会话数据就会被销毁。我注意到,在session_destroy之后,session_id未被设置,但会话数据仍然可以访问。 所以我只能得出结论:即时销毁数据,在运行时将其解除。而如果你的脚本在最后,那么session_destroy就可以做到。如我错了请纠正我。谢谢。 – chaser 2012-08-01 01:17:49