小编典典

显示活动页面查看者的数量

ajax

我的网站上有嵌入式流,但是我想增加页面上的实时观众数。有没有办法用PHP / AJAX做到这一点,显示当前正在查看我的一个网页的人数?


阅读 293

收藏
2020-07-26

共1个答案

小编典典

免责声明:我很久以前就做过这样的事情,所以这是丑陋的旧代码(我不会在第一次开始编程时就努力使外观看起来更好/不是,因为这只是为了让您了解如何做到的,而不是随意输入任何特定代码)。

$timeout = time() - (20);

$sessid_exist = mysql_query("SELECT sessid FROM bw_sessions WHERE sessid='" . session_id() . "'") or die (mysql_error());
$sessid_check = mysql_num_rows($sessid_exist);

if ($_SESSION['bw_username']) {
                $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "', username='" . $_SESSION['bw_username'] . "' WHERE sessid='" . session_id() . "'");
} else {
  if($sessid_check > 0){
                $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "' WHERE sessid='" . session_id() . "'");
              } else {
              $sql = mysql_query("INSERT INTO bw_sessions (id, username, sessid, timestamp, ip)
        VALUES(null, '', '" . session_id() . "', '" . time() . "', '" . $_SERVER['REMOTE_ADDR'] . "')") or die (mysql_error());
          }
}


$sql = mysql_query("SELECT distinct sessid FROM bw_sessions WHERE username='' AND timestamp >= '$timeout' ORDER BY timestamp DESC") or die (mysql_error());
$sql2 = mysql_query("SELECT distinct sessid,username FROM bw_sessions WHERE username!='' AND timestamp >= '$timeout' ORDER BY username DESC") or die (mysql_error());
$num_guests = mysql_num_rows($sql);
$num_reg = mysql_num_rows($sql2);
?>

<font size='1'>Currently Online: <br>
                        <?=$num_guests;?> Guests<br>
                        <?=$num_reg;?> Registered users

您只需要制作一个表并按住session_id即可。然后在该表中查询任何“近期”活动。如果要实时更新,请将上面的代码(已修改为表格设计)放在“online.php”中,每隔x秒通过jquery调用一次,或者您决定这样做。

2020-07-26