Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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_Javascript - Fatal编程技术网

Php 在会话被破坏后诱导函数

Php 在会话被破坏后诱导函数,php,javascript,Php,Javascript,我想在会话被破坏(即用户关闭浏览器)后引入一个函数。此函数将数据库中的值从true更改为false。这可能吗?我猜您想知道用户是否在线(或类似的情况?)唯一“知道”(阅读:猜测)会话已结束的方法是存储用户上次活动的时间,然后将该时间与当前时间进行比较。然后,根据您的需要,您可以决定假设一个已停用30分钟的用户处于脱机状态 实现这一点的唯一方法是使用Javascript检测关闭,并使用Ajax请求(例如使用XMLHttpRequest)访问PHP页面(处理注销部分) 有关结束部分的更多信息,请参阅

我想在会话被破坏(即用户关闭浏览器)后引入一个函数。此函数将数据库中的值从true更改为false。这可能吗?

我猜您想知道用户是否在线(或类似的情况?)唯一“知道”(阅读:猜测)会话已结束的方法是存储用户上次活动的时间,然后将该时间与当前时间进行比较。然后,根据您的需要,您可以决定假设一个已停用30分钟的用户处于脱机状态

实现这一点的唯一方法是使用Javascript检测关闭,并使用Ajax请求(例如使用
XMLHttpRequest
)访问PHP页面(处理注销部分)


有关结束部分的更多信息,请参阅。

我建议您在数据库中注册用户的最后一个活动,这样它就100%准确了。 然后,通过比较注册日期和当前时间,您可以决定用户何时处于活动状态

如果您确实想知道用户是否仍在您的页面上,您也可以做一些事情,但您应该避免:
在客户端,例如每分钟创建一个javascript循环,告诉服务器客户端仍然存在。当客户端将关闭其页面时,循环将不会进行任何新查询。

服务器无法知道用户何时关闭浏览器。当垃圾收集运行且会话文件超过最大生存期时,会话数据将被销毁。它与浏览器事件无关。您可以尝试在onunload事件上触发请求,但不能保证它会工作(在导航到另一个页面时也会触发)。如果您正在跟踪数据库中的会话,通常的方法是假设它将在某个时间点后过期。如果您能更详细地描述您的最终目标,我们可能会建议一种更好的方法。告诉我们原因,这样会更容易找到最佳方法来归档结果。正如你所说的,这是完全不可能的。我认为这会起作用,但是当用户单击链接或刷新页面时,onunload事件也会发生-我只想知道当用户关闭浏览器窗口或选项卡时发生的事件。@Ziarno有些网站有
你确定要离开吗?
问题。检查这个:-这是你应该使用的方式。我不希望函数在刷新时启动。我想没有一种方法可以只在选项卡/窗口关闭时触发事件,而不在刷新/链接时触发事件。。。