可能的重复:
如何使用 javascript 或 php 统计网站当前访问者
我的网站上有一个嵌入式流,但我想提取页面上实时观看者的数量。有没有一种方法可以使用 PHP / AJAX 来执行此操作,显示当前正在查看我的网页之一的人数?
免责声明:我很久以前就做过类似的事情,所以这里是丑陋的旧代码(我不会努力让代码看起来更好/不是在我第一次开始编程时,因为这只是为了让你了解如何做到这一点,而不是用勺子喂任何特定的代码)。
$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 调用它,或者您决定如何执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)