aru*_*air 3 php wamp unique sessionid logout
我已经在我的系统中配置了wamp,并且正在本地环境中进行开发和测试.我正在研究注销功能,并且碰巧注意到生成的会话ID在浏览器中是相同的.
例如 - 即使在注销并登录后,chrome也会为所有用户生成会话ID = abc; IE总是为所有用户生成session id = xyz.
这是wamp /我的测试环境的问题吗?
请在下面找到我的注销php脚本 -
<?php
session_start();
$sessionid = session_id();
echo $sessionid;
session_unset();
session_destroy();
?>
Run Code Online (Sandbox Code Playgroud)
您可能仍然拥有包含旧会话ID的cookie,因为它们既不删除session_unset也不session_destroy删除该cookie:
为了完全终止会话,比如要将用户注销,还必须取消设置会话ID.如果使用cookie来传播会话ID(默认行为),则必须删除会话cookie.
setcookie()可以用于此.
因此setcookie,在注销后使用以使会话ID cookie无效:
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
Run Code Online (Sandbox Code Playgroud)
另一个建议是使用后成功验证后重新生成会话ID session_regenerate_id(true).