【发布时间】:2013-11-13 04:40:12
【问题描述】:
这是一些非常简单的会话代码
ini_set('session.cookie_lifetime', 0);
session_start();
echo session_id();
var_dump($_SESSION);
$_SESSION["name"] = "test";
我加载了一次页面。
然后我注释掉
#$_SESSION["name"] = "test";
我点击重新加载并且可以 $_SESSION 变量。
如果我完全关闭浏览器并启动它,我希望 $_SESSION 变量完全为空。
相反,我看到“名称”仍然是 $_SESSION 变量的一部分。
请更改此代码,以便在我关闭浏览器时清空 $_SESSION。当我再次打开它时,$_SESSION 变量应该是空的。
【问题讨论】:
-
你可以做的是使用 session_unset();和 session_destroy();在您网站的第一个登录页面(即 index.php)上,这将破坏任何先前的会话,然后您可以立即使用 session_start() 跟随该代码;开始一个新会话...唯一的问题是,每次刷新 index.php 时,会话变量都会被重置。
-
查看这篇文章以了解在 XX 分钟后使会话数据过期的方法:stackoverflow.com/questions/520237/… 没有可靠的方法来做你想做的事(在浏览器关闭时),除非你想浪费宝贵的资源轮询服务器每隔几秒
标签: php session session-cookies