2012-10-08 48 views
2

在浏览通过PHP各种用户注销功能,我总是遇到session_destory()到远程会话变量用于特殊用途,但是他们不使用setCookie()删除用户的PHP SESSIONID删除用户的会话实存后注销

的PHP文档明确指出:

为了完全杀掉会话,就像登录用户一样,会话ID也必须是未设置的。如果使用cookie传播会话标识(默认行为),则必须删除会话cookie。 setcookie()可用于此目的。

我试图在Firefox跟踪的cookie,并使用session_destroy(),继续保持PHP SESSIONID的cookie,则用户下次登录时,所用的相同SESSIONID ID。

如果我无法删除SessionID Cookie,那么在用户机器退出登录后远程登录会话ID Cookie并不总是安全的吗?

回答

2

只要做到这一点:

$_SESSION = array(); 

这样的会议是空的。

没有必要(也没有增加安全性)通过摧毁它,就像你尝试。

0

这应该工作:

session_regenerate_id (true); 

的功能说明:

session_regenerate_id - 用新生成的一个更新当前会话ID。 它只是参数,默认为false:delete_old_session - 是否删除旧的关联会话文件。