Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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_Jquery_Ajax - Fatal编程技术网

PHP聊天会话

PHP聊天会话,php,jquery,ajax,Php,Jquery,Ajax,我已经为我的客户网站建立了一个聊天脚本。一旦用户登录,我会设置一个会话,并通过将聊天状态设置为1来更新数据库中的表。一旦用户注销,我将聊天状态设置为0,此外,如果用户关闭浏览器的选项卡,聊天状态将设置为0,不再进行聊天 这里的主要问题是,如果用户的计算机被关闭或电源被切断,如何检测用户是否无法聊天。或者,即使用户打开一个新选项卡,而不是关闭该选项卡,他也会关闭浏览器 我被卡住了。事先多谢你约翰雷莫斯所说的话。如果这是一个基于PHP的聊天,那么您就无法很容易地判断连接何时被强制关闭。我会说,只要有

我已经为我的客户网站建立了一个聊天脚本。一旦用户登录,我会设置一个会话,并通过将聊天状态设置为1来更新数据库中的表。一旦用户注销,我将聊天状态设置为0,此外,如果用户关闭浏览器的选项卡,聊天状态将设置为0,不再进行聊天

这里的主要问题是,如果用户的计算机被关闭或电源被切断,如何检测用户是否无法聊天。或者,即使用户打开一个新选项卡,而不是关闭该选项卡,他也会关闭浏览器


我被卡住了。事先多谢你

约翰雷莫斯所说的话。如果这是一个基于PHP的聊天,那么您就无法很容易地判断连接何时被强制关闭。我会说,只要有某种方法让聊天超时就行了

IE:如果客户端在几分钟内没有请求,或者可能长达几小时,那么可以安全地假设它们不再连接,然后您可以将聊天状态设置为0

更新:

抱歉,我没有看到你的新评论。看另一页

session_start();
// set timeout period in seconds
$inactive = 600;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
    $session_life = time() - $_SESSION['timeout'];
    if($session_life > $inactive)
    { session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['timeout'] = time();

再次道歉,仍然习惯stackoverflow。

只需在MYSQL中使用phpmyadmin创建一个事件,每1分钟将status设置为0(更新login\u table set status=“0”)

然后每隔30秒设置一次更新状态=1的设置间隔


再进行一次设置间隔,检查status=1并检索all to DIV(这将显示在线用户。

修复此评论,使其看起来有点花哨。再次抱歉。(只是修复以前答案的通知)这就是我想问的。我们如何在时间限制后执行一些代码?我的意思是如何执行我的查询以在时间限制后将聊天状态设置为0?你能给我一个例子吗…好的,我看到你在上面的评论…检查上面的代码是否可以解决诸如internet连接丢失、电源关闭等问题…因为它是PHP端,它应该可以工作好的。这纯粹是服务器端的。不过,我不确定它对服务器有什么影响。