欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php统计在线人数的代码 结合mysql统计在线人数

程序员文章站 2022-04-28 13:49:07
...
  1. CREATE TABLE ccol(
  2. id integer not null auto_increment, #记录的ID
  3. ip char(15) not null, #访问者的IP地址
  4. dtstamp datetime not null, #最后访问时间
  5. uri char(255), #访问者请求的URI
  6. primary key (id)
  7. );
复制代码

然后,编写统计用的php代码

  1. /*
  2. 文件:ccol.php
  3. 目的:统计同时在线浏览的人数
  4. edit: bbs.it-home.org
  5. */
  6. $duration=1800;
  7. require "db.php"; //自行准备,数据库访问类
  8. //包含DBSQL
  9. $ccol=new dbSQL;
  10. $ccol->connect();
  11. $ccol->query("DELETE FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))>$duration");
  12. //删除超过半小时的记录
  13. $ccol->query("SELECT * FROM ccol WHERE ip='$REMOTE_ADDR'");
  14. //判断当前的IP是否在该表中存在
  15. if ($ccol->nf())//有?
  16. {
  17. $ccol->next_record();//下移找到的记录数组的指针
  18. $id=$ccol->f('id');
  19. $ccol->query("UPDATE ccol SET dtstamp=now(), uri='$REQUEST_URI' WHERE id=$id");
  20. //设置最后访问时间和访问页面
  21. }
  22. else//没有
  23. {
  24. $ccol->query("INSERT INTO ccol VALUES (0, '$REMOTE_ADDR', now(), '$REQUEST_URI')");
  25. }
  26. $ccol->query("SELECT COUNT(*) AS ccol FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))//找出在半个小时内的记录,后面的WHERE子句可有可无--超出时间的已经被删除了

  27. $ccol->next_record()
  28. echo "在线人数:", $ccol->f('ccol');
  29. $ccol->free_result();
  30. ?>
复制代码

调用方法,在站点的每个页面的上面调用这个程序。 例如:

网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • php统计在线人数的代码 结合mysql统计在线人数
  • 专题推荐

    作者信息
    php统计在线人数的代码 结合mysql统计在线人数

    认证0级讲师

    推荐视频教程
  • php统计在线人数的代码 结合mysql统计在线人数javascript初级视频教程
  • php统计在线人数的代码 结合mysql统计在线人数jquery 基础视频教程
  • 视频教程分类