我正在尝试正确退出管理员用户.这是我的功能:
function logout()
{
$_SESSION = array(); //destroy all of the session variables
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_destroy();
}
Run Code Online (Sandbox Code Playgroud)
基本上,一旦我验证密码,我将会话设置为有效(总共只有1个用户).现在,当管理员命中注销时,我想销毁当前会话,并且还销毁cookie,这样他们就不能只使用浏览器中存储的会话cookie返回管理页面.但我的代码不起作用.我点击退出,我可以直接导航回管理页面.但是,如果我删除我的cookie,功能是完美的.那么这里的cookie删除功能有什么问题?
对于我登录部分的每个页面的标题,我添加了以下代码来维护会话:
session_set_cookie_params(1200, '/mysystem');
session_start();
Run Code Online (Sandbox Code Playgroud)
我的意图是,我/mysystem通过函数session_set_cookie_params()将会话生命周期设置为1200秒.使用此函数的原因是将会话cookie与同一域中的其他PHP脚本分开,例如http://www.example.com/another_system/
问题是,无论是否有活动(例如加载其他页面/mysystem或刷新页面),会话都会在达到1200秒时到期.
预期行为:会话"倒计时"在活动会话有效时进行页面活动时重置.
我错过了什么 ?