我想在使用php的管理页面中没有在线用户 我努力了 这是我的用户主页:home.php
{function updatetime(){
$.ajax({
url:'update-status.php',
success:function(data){
}
});
}
setInterval(updatetime,30000);}
更新status.php
$a=$_SESSION['user'];
$p="update user set logg='".time()."' where userid='$a'";
mysqli_query($con,$p);
在管理页面中:adhome.php
{function online()
{
$.ajax({
url:'online.php',
success:function(data){
$(#rcon).html(data);
}
});
}
setInterval(online,30000);}
online.php:
$a=$_SESSION['user'];
$m1="SELECT * from user where userid='$a'";
echo $m2=mysqli_query($con,$m1) or die(mysqli_error($con));
$m3=mysqli_num_rows($m2);
$m4=mysqli_fetch_array($m3) or die(mysqli_error($con));
if($m3==1)
{
$b=time()-$m4['logg'];
if($b<(120))
{
$un= $m4['uname'];
echo '<tr><td>'.$un.'</td></tr>';
}
}enter code here
它不会显示错误 我没有在管理页面中获取用户bt db正在更新 还请解释时间() - $ m4 [&#39; logg&#39;]。我搜索了很多,但他们并不满意我。
答案 0 :(得分:-1)
PHP和Ajax是计算当前在线用户的一个坏主意,因为它可以创建高CPU和RAM usag。
更好的解决方案是带有socket.io的node.js。 (http://socket.io)
使用socket.io,您可以创建一个非常快速的在线用户计数器,而无需使用任何大的服务器和Bandwith。
统计: Node.js和Socket.io可以轻松处理超过5.000个连接,带有大约12MB / s带宽和16GB RAM以及一个Inter I7处理器