我的网站上有嵌入式流,但是我想增加页面上的实时观众数。有没有办法用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调用一次,或者您决定这样做。