Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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
Javascript 如何在使用php关闭浏览器时更新表值_Javascript_Php - Fatal编程技术网

Javascript 如何在使用php关闭浏览器时更新表值

Javascript 如何在使用php关闭浏览器时更新表值,javascript,php,Javascript,Php,当用户登录时 更新播放集login='1' 注销时 更新播放集登录='0' 但是,当用户在不使用“注销”的情况下关闭浏览器/选项卡时,我如何将值login更改为“0” 我使用这个“登录”作为一个标志,因此没有两个成员不能使用相同的用户名登录。(用户名由管理员创建并分发给学生。不使用密码。) 如果某个特定用户登录,则首先检查其“登录”。 如果登录=0 然后该用户“登录”将更新为1。 其他的 echo已登录 有没有其他方法来实现这一点。简单的解决方案是使用AJAX轮询服务器以保持用户登录(除非他们单

当用户登录时

更新播放集login='1'

注销时

更新播放集登录='0'

但是,当用户在不使用“注销”的情况下关闭浏览器/选项卡时,我如何将值login更改为“0”

我使用这个“登录”作为一个标志,因此没有两个成员不能使用相同的用户名登录。(用户名由管理员创建并分发给学生。不使用密码。)

如果某个特定用户登录,则首先检查其“登录”。 如果登录=0 然后该用户“登录”将更新为1。 其他的 echo已登录


有没有其他方法来实现这一点。

简单的解决方案是使用AJAX轮询服务器以保持用户登录(除非他们单击注销)。将所有行更改为
login='0'
,除非在执行心跳/轮询时通过更新的时间戳检测到它们处于联机状态

例如:

function heartbeat(){
   setTimeout(function(){
      $.ajax({ url: "http://example.com/api/heartbeat", cache: false,
      success: function(data){
        //Next beat
        heartbeat();
      }, dataType: "json"});
  }, 10000);//10secs
}

$(document).ready(function(){
    heartbeat();
});

更多信息(来自上一个问题)

这是一个相当复杂的问题,在这个问题上有很多解决方案

正如@Loz Cherone所说的,你可以通过一些方式计算你的用户,他们的broswer页面是打开的

这里还有一个关于这个问题的讨论,你应该读一下


我认为你应该阅读它们,并仔细思考你到底想做什么,这样你就可以更新你的问题并得到更好的答案:)

这不是一个好办法