用户关闭浏览器而不单击注销时销毁或取消设置会话

nec*_*tar 21 php session

可能重复:
如何在30分钟后使PHP会话到期?

我正在销毁logout.php中的所有会话var并在用户点击注销时调用它,用户不点击logout.php但直接关闭浏览器.我怎么能删除会话然后???

Gum*_*mbo 14

您可以设置会话数据的到期时间,对每个session_start调用进行测试,如果会话已过期则销毁该会话:

session_start();
if (!isset($_SESSION['EXPIRES']) || $_SESSION['EXPIRES'] < time()+3600) {
    session_destroy();
    $_SESSION = array();
}
$_SESSION['EXPIRES'] = time() + 3600;
Run Code Online (Sandbox Code Playgroud)

  • 这个答案并没有解决OP的问题.问题是:如何在关闭浏览器时销毁会话,而不是在延迟后销毁会话. (8认同)
  • 这有点尴尬的解决方案,你不觉得吗?有一个内置的功能! (2认同)

Thi*_*ter 13

你不能.但是,会话cookie通常在没有过期时间的情况下发送,这意味着它们在浏览器关闭时被删除,因此会话无论如何都会丢失.