【发布时间】:2014-08-15 15:00:48
【问题描述】:
虽然这个问题有多个重复项,但我找不到适合我的解决方案。 需要一些帮助。
我在我的配置文件中使用了ini_set('session.cookie_lifetime', 0);。
但这并没有帮助我在浏览器关闭时销毁会话。
应用电流:
1) 在认证页面如果用户有效,使用session_regenerate_id(true);生成新的会话标识符
2) 控制权转到welcome.php,我使用session_start(); 开始新会话
3) 在注销页面代码是
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
【问题讨论】:
-
请详细说明。 “销毁会话”实际上是什么意思?
-
如果用户关闭浏览器,我想关闭现有会话。如果用户重新打开浏览器,我想再次向他发送登录页面。
-
“关闭现有会话”是什么意思?
-
关闭浏览器绝不是破坏 cookie 会话的最佳方式,因为网络服务器永远不知道浏览器何时关闭。浏览器不会向服务器发送任何它正在关闭的通知,因此服务器无法发送删除 cookie 的命令,因为浏览器已关闭。
-
提示,登录时取消选中记住我选项。;p