【发布时间】:2013-04-01 06:35:40
【问题描述】:
我可以如何以及在哪里使用
$this->Session->destroy()
要在页面关闭时销毁会话?
我怎样才能在页面关闭之前保持会话打开,与时间无关?
我需要这个,因为当用户进入页面时,会话中没有设置一些特定的变量,当他出来时,我需要销毁这个会话。 我无法使用 cakephp 做到这一点。
【问题讨论】:
标签: php session cakephp cakephp-2.3
我可以如何以及在哪里使用
$this->Session->destroy()
要在页面关闭时销毁会话?
我怎样才能在页面关闭之前保持会话打开,与时间无关?
我需要这个,因为当用户进入页面时,会话中没有设置一些特定的变量,当他出来时,我需要销毁这个会话。 我无法使用 cakephp 做到这一点。
【问题讨论】:
标签: php session cakephp cakephp-2.3
会话存储在服务器上,因此如果浏览器关闭或用户转到其他页面,它没有义务通知服务器有关此操作。
会话在服务器中存储一段时间,在一段时间不活动或正确注销后,它会在那里自动销毁。
查看CakePHP cookbook 中的会话信息以获取有关会话的更多信息
【讨论】:
您可以尝试使用$(window).unload(function(){alert('Closing browser')});
并对服务器进行 ajax 调用以销毁会话,但这可能不适用于某些浏览器并且 jQuery 1.8 中已弃用的功能以获取更多信息
http://api.jquery.com/unload/
【讨论】:
如果你使用过 Auth cakephp 3.0 组件,则无需对会话核心组件所承载的所有会话和 cookie 管理进行任何操作。
$this->Session->destroy()
它将销毁所有 cookie 和会话数据,但如果您想销毁特定会话,则可以通过此代码进行操作
$this->Session->destroy('$val');
这里,$val 表示要销毁的特定会话
【讨论】: