2

我如何以及在哪里可以使用

$this->Session->destroy()

每当页面关闭时会话就被销毁?

以及如何在页面关闭之前保持会话打开,与时间无关?

我需要这个,因为当用户进入页面时,会话中的一些特定变量未设置,当他出来时,我需要销毁这个会话。我无法使用 cakephp 做到这一点。

4

3 回答 3

1

会话存储在服务器上,因此如果浏览器关闭或用户转到不同的页面,它没有义务通知服务器此操作。

会话会在服务器中存储一段时间,并且在一段时间不活动或正确注销后,它将在那里自动销毁。

查看CakePHP 食谱中的 Sessions 信息以获取有关 Sessions 的更多信息

于 2013-04-09T18:04:18.087 回答
0

您可以尝试使用$(window).unload(function(){alert('Closing browser')}); And do ajax call to server 来销毁会话,但这可能不适用于某些浏览器并且 jQuery 1.8 中已弃用的功能以获取更多信息 http://api.jquery.com/unload/

于 2013-04-10T09:18:08.060 回答
0

如果您使用过 Auth cakephp 3.0 组件,则无需对会话核心组件进行的所有会话和 cookie 管理进行任何操作。

$this->Session->destroy()

它将销毁所有 cookie 和会话数据,但如果您想销毁特定会话,则可以通过此代码执行

$this->Session->destroy('$val');

这里,$val 代表要销毁的特定会话

于 2015-05-20T13:45:31.567 回答