当你离开页面时,在cakephp中销毁会话?

时间:2013-04-09 17:29:58

标签: php session cakephp cakephp-2.3

我如何以及在何处使用

$this->Session->destroy()

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

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

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

3 个答案:

答案 0 :(得分:1)

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

会话在服务器中存储了一段时间,经过一段时间不活动或正确注销后,会自动将其销毁。

检查CakePHP cookbook中的会话信息,了解有关会话

的更多信息

答案 1 :(得分:0)

您可以尝试使用$(window).unload(function(){alert('Closing browser')}); 并执行ajax调用服务器来销毁会话,但这可能不适用于某些浏览器,并且已经在jQuery 1.8中弃用了函数以获取更多信息 http://api.jquery.com/unload/

答案 2 :(得分:0)

如果您使用过Auth cakephp 3.0组件,则无需执行会话核心组件承载的所有会话和cookie管理。

$这 - >会话而>破坏()

它将销毁所有cookie和会话数据,但如果你想销毁特定会话,那么你可以通过这个代码来做

$这 - >会话而>破坏( '$ VAL');

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