Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭浏览器时销毁PHP会话_Php - Fatal编程技术网

关闭浏览器时销毁PHP会话

关闭浏览器时销毁PHP会话,php,Php,可能重复: 我正在为我的客户端实现一个聊天脚本。我面临的问题是,如果用户注销,我可以编程将其聊天状态结束为脱机,因为当用户登录时,状态设置为1,但我不清楚,如果用户在未注销的情况下关闭浏览器会怎么样。在这种情况下,数据库中的状态保持为1,因为用户尚未注销 希望你能理解这个问题。请提供帮助。假设您正在使用基于cookie的会话,请非常积极地设置超时 您还可以通过JavaScript钩住浏览器的卸载事件,并向服务器触发破坏会话的快速AJAX请求 不过,我不会依赖这种客户端实现——如果浏览器崩溃

可能重复:

我正在为我的客户端实现一个聊天脚本。我面临的问题是,如果用户注销,我可以编程将其聊天状态结束为脱机,因为当用户登录时,状态设置为1,但我不清楚,如果用户在未注销的情况下关闭浏览器会怎么样。在这种情况下,数据库中的状态保持为1,因为用户尚未注销


希望你能理解这个问题。请提供帮助。

假设您正在使用基于cookie的会话,请非常积极地设置超时

您还可以通过JavaScript钩住浏览器的卸载事件,并向服务器触发破坏会话的快速AJAX请求


不过,我不会依赖这种客户端实现——如果浏览器崩溃,或者用户强制关闭它,这可能不会触发事件。考虑到用户的情况,浏览器本身也可能会限制允许
onunload
事件完成的时间。这两种方法的组合可能是最有效的。

假设您使用的是基于cookie的会话,请非常积极地设置超时

您还可以通过JavaScript钩住浏览器的卸载事件,并向服务器触发破坏会话的快速AJAX请求


不过,我不会依赖这种客户端实现——如果浏览器崩溃,或者用户强制关闭它,这可能不会触发事件。考虑到用户的情况,浏览器本身也可能会限制允许
onunload
事件完成的时间。这两种方法的组合可能是最有效的。

当会话cookie过期或在某段时间不活动后,在数据库中设置用户脱机


您可以在每个请求上进行检查。

当会话cookie过期或在某段时间不活动后,在数据库中将用户设置为脱机


您可以在每个请求中检查此项。

可能这就是我所寻求的。。。但我不确定它是否有效。。。第二个。。谢谢你的及时帮助!也许这就是我想要的。。。但我不确定它是否有效。。。第二个。。谢谢你的及时帮助!