如何编写没有数据库的在线脱机用户状态

时间:2013-07-17 11:27:26

标签: php jquery ajax chat

我试图在聊天脚本中显示发送消息的用户是在线还是离线。

为此,有一个连续800毫秒的ajax正在从chat.txt文件中获取聊天消息,但我的问题是显示给定用户是在线还是离线状态。

我试过这个: -

function show_status() {
    var id = ("#id").val();
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("status").innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET",'/status.php?id='+id,true);
    xmlhttp.setRequestHeader("Content-type","text/html");
    xmlhttp.send();
}

并在status.php中...我有这段代码: -

<?php
    if(isset($_GET['id'])) {
      if( $_GET['id'] === '123') {
         echo 'Online';
      } else {
         echo 'Offline';
      }
    }
    if( $_GET['id'] === '321') {
       echo 'Online';
    } else {
    echo 'Offline';
    }
?>

但问题是,如果我的ID是123,它向我显示,我的帐户在线,即使321在线它显示离线,对于用户是321,它显示他的身份321在线和其他帐户离线,是有任何方法,可以推翻......并显示所有在线用户。 没有触及数据库,我不想每次都在数据库中运行查询。

0 个答案:

没有答案