【发布时间】:2011-02-19 20:45:47
【问题描述】:
我正在销毁 logout.php 中的所有会话 var 并在用户单击注销时调用它,什么是用户不单击 logout.php 而是直接关闭浏览器。那我怎么删除会话???
【问题讨论】:
-
感谢您的回复,会话超时的语法在哪里以及是什么。
我正在销毁 logout.php 中的所有会话 var 并在用户单击注销时调用它,什么是用户不单击 logout.php 而是直接关闭浏览器。那我怎么删除会话???
【问题讨论】:
您可以为会话数据设置过期时间,使用每个session_start 调用对其进行测试,如果会话过期则销毁会话:
session_start();
if (!isset($_SESSION['EXPIRES']) || $_SESSION['EXPIRES'] < time()+3600) {
session_destroy();
$_SESSION = array();
}
$_SESSION['EXPIRES'] = time() + 3600;
【讨论】:
session_cache_expire 的实际作用。
你不能。但是,会话 cookie 通常在没有过期时间的情况下发送,这意味着它们会在浏览器关闭时被删除,因此会话无论如何都会丢失。
【讨论】:
如果您不修改会话 Cookie 的到期时间,则 PHP 会话应在浏览器窗口关闭时自动到期。如果没有发生这种情况,那么我会假设您已经以某种方式对此进行了修改,我们需要更多详细信息来提供帮助。
【讨论】:
可以将会话设置为简单地过期,服务器在一段时间后不会收到客户端的消息。这就是你要寻找的方向......
马丁
【讨论】:
如果您没有为会话 cookie 设置过期时间,它将在用户关闭浏览器时被删除,这对于大多数实际用途具有相同的效果(除非您担心存储或安全性)。如果这还不够好,您可以将会话设置为很快过期并通过 AJAX 定期刷新它们。
【讨论】: