【问题标题】:Destroy session in cakephp when you leave the page?离开页面时在 cakephp 中销毁会话?
【发布时间】:2013-04-01 06:35:40
【问题描述】:

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

$this->Session->destroy()

要在页面关闭时销毁会话?

我怎样才能在页面关闭之前保持会话打开,与时间无关?

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

【问题讨论】:

    标签: php session cakephp cakephp-2.3


    【解决方案1】:

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

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

    查看CakePHP cookbook 中的会话信息以获取有关会话的更多信息

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        $this->Session->destroy()

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

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

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

        【讨论】:

          猜你喜欢
          • 2011-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          • 2021-07-04
          • 1970-01-01
          相关资源
          最近更新 更多