其实,有一种实现方法是php会话.但是,我不太清楚!
谁能不能举个例子?
如还有其他的方法也请指教!
谢谢!

解决方案 »

  1.   

    1、准确的知道有多少用户在线是做不到的。因为http协议是无状态协议,每次连接都是独立的。且请求只能由客户端发出
    2、通常只是统计某个时间间隔里的用户,尽管统计的时刻又有若干用户离开但仍计算在内
    3、具体的说就是设定一个时间间隔比如5分钟。那么检测时只统计在这个间隔里有活动的用户,即使用户并未退出,但在这个间隔里没有活动就不算在线基于上述讨论:
    在用户表中增加一个反映最后访问时间的字段
    使用用户检查程序对该字段赋值,同时清0符合 最后访问时间 > 当前时间-时间间隔 的记录
    统计该字段非0的记录数即为在线人数
      

  2.   

    我的思路:(不对别仍板砖)
    把数据放在数据库表里(mysql)
    表字段为时间戳(判断用户是否在线),用户IP地址,等等
    新用户登录执行一系列数据库操作:写进新用户数据;判断数据表中有无用户长时间没反应
    也就是小于定义的时间戳,有就是用户已经离开了,删除之,无,更新数据;选出在线用户给登录者,等等
    当然,刷新是少不了的,定义个时间刷新没想全,有可能错了,先闪了!
      

  3.   

    to: xuzuning(唠叨)   mistjin(小红点点不见了,看这里看这里)   hya(伟) pangxie520(博雅) 
    谢谢各位了.有没有范例呢.?
      

  4.   

    "最后访问时间" 这个时间戳 在mysql里面最好选择哪种格式!
      

  5.   

    类型datetime
    赋值使用mysql的now()函数
    对于你的问题只是修改与检索
    假定字段名为date
    假定是5分钟赋值
    update tbl_name set date=now() where 条件检索
    select * form tbl_name where adddate(date, interval 5 MINUTE) >= now()清空
    update tbl_name set date='' where adddate(date, interval 5 MINUTE) < now()并无须多余的php代码
      

  6.   

    谢谢 xuzuning(唠叨) 兄,我试试看!
      

  7.   

    to xuzuning(唠叨) 兄
    但是我的数据库不识别now()函数呀!
      

  8.   

    我现在都没空了。你那个数据库时间时字段为什么格式.用time()函数看看。