关闭时销毁PHP会话

sik*_*kas 15 php session

我创建了一个基于会话的简单登录页面.

session_start();
Run Code Online (Sandbox Code Playgroud)

并添加了一个包含此内容的注销页面

session_destroy();
Run Code Online (Sandbox Code Playgroud)

现在,当我关闭浏览器/页面并重新打开它时,会话的值仍然存在.

我想知道如何完全破坏页面/浏览器关闭的会话.

sup*_*fro 25

如果您使用:

session_set_cookie_params(0);
session_start();
Run Code Online (Sandbox Code Playgroud)

当浏览器关闭时,您的会话cookie将会破坏...因此,在关闭浏览器之前,您的会话将会很好.IE浏览器.您登录后,您已登录,关闭浏览器,重新打开它,再次访问该站点,您将无法登录.

  • 它不起作用...我的页面仍然被打开不知道为什么我在我的登录页面和模板标题页面上放了相同的代码,但它会被破坏 (4认同)
  • 对我来说也没有用,但发现了(我的)理由:Firefox在关闭后记住了标签,并且此功能可以防止会话被破坏.详情请访问:https://support.mozilla.org/de/questions/975670 (3认同)

Tre*_*non 5

您将只能使用javascript检测浏览器窗口是否已关闭,此时您可能会触发Ajax请求以执行注销操作.

  • 尽管投票率下降,但这种方法仍然可行,而JS是唯一可以检测浏览器窗口是否已关闭的方法.`session_set_cookie_params(0)`将cookie存储在用户内存而不是磁盘中,但是当浏览器窗口关闭时它不会反馈给服务器.cookie将随用户浏览器而死. (3认同)