Php 在浏览器关闭时注销
我有一个带有登录名的PHP站点。一旦此人登录(使用标准的基于文件的会话),此人可以单击注销页面将其注销 问题是——访客通常不会这么做。他们只需关闭web浏览器 但是,下一个人可以出现,打开浏览器,然后正好进入第一个人的登录区域 这似乎是一个巨大的安全漏洞:)在共享用户环境中(办公室、网吧等) 我需要知道如何通过关闭窗口“注销”此人。我知道Php 在浏览器关闭时注销,php,session,session-cookies,Php,Session,Session Cookies,我有一个带有登录名的PHP站点。一旦此人登录(使用标准的基于文件的会话),此人可以单击注销页面将其注销 问题是——访客通常不会这么做。他们只需关闭web浏览器 但是,下一个人可以出现,打开浏览器,然后正好进入第一个人的登录区域 这似乎是一个巨大的安全漏洞:)在共享用户环境中(办公室、网吧等) 我需要知道如何通过关闭窗口“注销”此人。我知道 'session.cookie_lifetime' 变量设置为0 必须有一些解决办法。任何帮助都将不胜感激。PHP无法(单独地)知道客户端何时关闭,因为
'session.cookie_lifetime'
变量设置为0
必须有一些解决办法。任何帮助都将不胜感激。PHP无法(单独地)知道客户端何时关闭,因为这是一个客户端事件,而不是服务器事件。但是,您可以在客户端上使用JS将AJAX返回到服务器,让它知道会话已关闭,使用窗口。unload
事件()
您可能还想了解会话清理中可能存在漏洞的原因(不确定这是否仍然适用于较新的PHP版本)以及session.gc_maxlife,您可能还需要对其进行调整 我发现它在IE8和Safari上运行良好。只有在Chrome和Firefox上才不起作用。这些浏览器在浏览器关闭后以某种方式重用会话cookie。我甚至关闭了“启动时从我离开的地方继续”。所以这不是PHP的问题。