2

在浏览 PHP 中的各种用户注销功能时,我总是遇到session_destory()特定用途的远程会话变量,但它们不用于setCookie()删除用户的 PHPSESSIONID

PHP 文档明确指出:

为了完全终止会话,例如注销用户,还必须取消设置会话 ID。如果使用 cookie 传播会话 id(默认行为),则必须删除会话 cookie。setcookie() 可以用于此。

我尝试在 Firefox 中跟踪 cookie,并使用session_destroy(), 继续保留 PHP 的 cookie SESSIONID,下次用户登录时,使用相同的SESSIONIDid。

在用户注销后从用户的计算机远程远程会话 ID Cookie 是否总是安全的,如果我无法删除会话 ID Cookie 会发生什么情况?

4

2 回答 2

2

只需这样做:

$_SESSION = array();

这样会话是空的。

不需要(也没有增加安全性)像你尝试的那样摧毁它。

于 2012-10-08T14:40:30.263 回答
0

这应该有效:

session_regenerate_id ( true );

功能说明:

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

于 2012-10-08T14:45:13.883 回答