我已经在我的系统中配置了wamp,并且正在这个本地环境中进行开发和测试。我正在开发注销功能,并且碰巧注意到在浏览器中生成的会话ids是相同的。
Eg chrome始终为所有用户生成会话id = abc,即使在注销和登录之后也是如此;IE始终为所有用户生成会话id = xyz。
这是wamp/我的测试环境的问题吗?
请在我的注销php脚本下面找到-
<?php
session_start();
$sessionid = session_id();
echo $sessionid;
session_unset();
session_destroy();
?>发布于 2011-05-21 02:42:19
您可能仍然有包含旧会话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"]
);
}另一个建议是在使用session_regenerate_id(true)成功进行身份验证后重新生成会话ID。
发布于 2012-11-29 16:54:11
都会起作用的。请试试这个
session_start();
session_regenerate_id(TRUE);
session_destroy(); 发布于 2011-05-21 02:35:42
您必须使用函数session_regenerate_id()重新生成会话id。否则,两次页面刷新的会话ID将是相同的。
https://stackoverflow.com/questions/6076214
复制相似问题