PHP实现在现人数的代码?

kevindai 2003-09-27 03:19:35
有谁可以告诉我怎样用PHP实现在线人数呢?
或者在线人的网名呢?
要如何实现呢?
请各位大侠给我讲解一下并提供代码.
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jueban9818 2003-09-29
  • 打赏
  • 举报
回复
http://jueban.ku.net
kevindai 2003-09-28
  • 打赏
  • 举报
回复
谢谢你们
feel8 2003-09-27
  • 打赏
  • 举报
回复
针对自己的情况需要修改 一下

<?


$ip = $_SERVER["REMOTE_ADDR"];
$time = time();
$minutes = 15;
$found = 0;
$users = 0;
$user = "";

$tmpdata = $DOCUMENT_ROOT."/online/data";

if (!is_file("$tmpdata/online.txt"))
{
$s = fopen("$tmpdata/online.txt","w");
fclose($s);
chmod("$tmpdata/online.txt",0666);
}

$f = fopen("$tmpdata/online.txt","r+");
flock($f,2);

while (!feof($f))
{
$user[] = chop(fgets($f,65536));
}

fseek($f,0,SEEK_SET);
ftruncate($f,0);

foreach ($user as $line)
{
list($savedip,$savedtime) = split("|",$line);
if ($savedip == $ip) {$savedtime = $time;$found = 1;}
if ($time < $savedtime + ($minutes * 60))
{
fputs($f,"$savedip|$savedtimen");
$users = $users + 1;
}
}

if ($found == 0)
{
fputs($f,"$ip|$timen");
$users = $users + 1;
}

fclose ($f);
print "在线人数: <font color=black>$users</font>
";
?>
inberkung 2003-09-27
  • 打赏
  • 举报
回复
每个页面加一个载入事件.
这个载入事件就是写最后一次在线时间的文件.
它把最后一次在线时间写入数据库
比较当前时间和最后一次在线时间是否大于
一个值比如5 分钟如果是则说明已经不在线.
要求页面重新登录.
这个方法比较有效
inberkung 2003-09-27
  • 打赏
  • 举报
回复
每个页面加一个载入事件.
这个载入事件就是写最后一次在线时间的文件.
比较当前时间和最后一次在线时间是否大于
一个值比如5 分钟如果是则要求重新登录.
qing205 2003-09-27
  • 打赏
  • 举报
回复
有种方法是用数据库实现的很耗资源
如果你想听可以继续,如果不想听则返回!
因为我们无法知道对方何时关闭浏览器走人,所以我们要给出一个时间来作为对方不线的依据
例如:5分钟 就是说对方上一次操作你所纪录的时间和当前时间相差大于了5分钟,我们则认为他不在线,条件是对方的每一次操作你都必须更新你数据库中相应ID的时间。大概就是这样的,其实解决方法很多,你可以去www.google.com上去搜,我的这种方法不太好!
实现的方法都有了,你还要代码做什么,因该自己写啊,锻炼一下,也就是一些简单的数据库操作!
如果有什么不妥之处不要笑话我,帮我指出,我也才学没多长时间!

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧