我如何以及在哪里可以使用
$this->Session->destroy()
每当页面关闭时会话就被销毁?
以及如何在页面关闭之前保持会话打开,与时间无关?
我需要这个,因为当用户进入页面时,会话中的一些特定变量未设置,当他出来时,我需要销毁这个会话。我无法使用 cakephp 做到这一点。
我如何以及在哪里可以使用
$this->Session->destroy()
每当页面关闭时会话就被销毁?
以及如何在页面关闭之前保持会话打开,与时间无关?
我需要这个,因为当用户进入页面时,会话中的一些特定变量未设置,当他出来时,我需要销毁这个会话。我无法使用 cakephp 做到这一点。
会话存储在服务器上,因此如果浏览器关闭或用户转到不同的页面,它没有义务通知服务器此操作。
会话会在服务器中存储一段时间,并且在一段时间不活动或正确注销后,它将在那里自动销毁。
查看CakePHP 食谱中的 Sessions 信息以获取有关 Sessions 的更多信息
您可以尝试使用$(window).unload(function(){alert('Closing browser')});
And do ajax call to server 来销毁会话,但这可能不适用于某些浏览器并且 jQuery 1.8 中已弃用的功能以获取更多信息
http://api.jquery.com/unload/
如果您使用过 Auth cakephp 3.0 组件,则无需对会话核心组件进行的所有会话和 cookie 管理进行任何操作。
$this->Session->destroy()
它将销毁所有 cookie 和会话数据,但如果您想销毁特定会话,则可以通过此代码执行
$this->Session->destroy('$val');
这里,$val 代表要销毁的特定会话