基于数据库的在线人数,日访问量等统计

 更新时间:2006年10月09日 00:00:00   作者:  
可以实现在线人数统计,日访问量统计,月访问量统计。。。。。

<?
$sql = "CREATE TABLE guestinfo(id integer DEFAULT '0' NOT NULL       AUTO_INCREMENT,
                       ipaddress varchar(20),
                       host      varchar(20),
                       cometime    datetime,
                       refreshtime datetime,
                       leavetime  datetime,
                       PRIMARY KEY(id),
                       UNIQUE id(id),
                       index guestinfo(id)
                       )";
   mysql_query($sql, $connect);
?>

<?
    $duration = 300;
    $sql = "select * from guestinfo where  (leavetime is null or leavetime='') and ( UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(refreshtime))>$duration";
    $result=@mysql_query($sql);
    while($row=@mysql_fetch_array($result))
    {
        $id = $row['id'];
        $sql = "update guestinfo set leavetime=now() where id='$id'";
        mysql_query($sql);

    }
    $sql = "select * from guestinfo where ipaddress='$REMOTE_ADDR' and (leavetime is null or leavetime='')";
    $result = @mysql_query($sql);
    if($row=@mysql_fetch_array($result))
    {
       $id = $row['id'];
       $sql="update guestinfo set refreshtime=now() where id='$id'";
       mysql_query($sql);
    }
    else
    {
       $sql = "insert into guestinfo(ipaddress,host,cometime,refreshtime)
          values('$REMOTE_ADDR','$REMOTE_HOST',now(),now())";
       mysql_query($sql);
    }
    $date= mktime(0,0,0,date("m"),date("d"),date("Y"));
    $sql = "select count(*) from guestinfo where  UNIX_TIMESTAMP(refreshtime)> $date";
    $result = mysql_query($sql);
    if($result)
    {
        $row = mysql_fetch_array($result);
        $todayaccess = $row["count(*)"];
    }
    else $todayaccess = 0;

    $sql = "select count(*) from guestinfo where  leavetime is null or leavetime=''";
    $result = mysql_query($sql);
    if($result)
    {
        $row = mysql_fetch_array($result);
        $nowonline=  $row["count(*)"];
    }
    else   $nowonline = 0;
    mysql_close($connect);
?>

include("guest.php");
<head>
<meta http-equiv="Refresh" content=<? echo $duration?>; url=<? echo $PHP_SELF; ?>">
</head>
欢迎来我的网站来灌水,有什么问题,给我留言。

相关文章

  • 坏狼的PHP学习教程之第3天

    坏狼的PHP学习教程之第3天

    黑客高手写的php教程,建议学习下php,以后这东西少不了
    2008-06-06
  • 介绍php设计模式中的工厂模式

    介绍php设计模式中的工厂模式

    在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况, 新对象的建立就是一个 “过程”,不仅是一个操作,像一部大机器中的一个齿轮传动。
    2008-06-06
  • Win2000+Apache+MySql+PHP4+PERL安装使用小结

    Win2000+Apache+MySql+PHP4+PERL安装使用小结

    Win2000+Apache+MySql+PHP4+PERL安装使用小结...
    2006-10-10
  • Centos 6.5系统下编译安装PHP 7.0.13的方法

    Centos 6.5系统下编译安装PHP 7.0.13的方法

    随着PHP 7.0对速度进行大幅度提高之后,PHP7版本也让更多的人开始使用。所以下面这篇文章主要给大家介绍了在Centos 6.5系统下编译安装PHP 7.0.13的方法,文中通过安装的步骤一步步介绍的非常详细,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • xml+php动态载入与分页

    xml+php动态载入与分页

    xml+php动态载入与分页...
    2006-10-10
  • php sybase_fetch_array使用方法

    php sybase_fetch_array使用方法

    本函数用来将查询结果 result 拆到数组变量中。若 result 没有资料,则返回 false 值。而本函数可以说是 sybase_fetch_row() 的加强函数,除可以将返回列及数字索引放入数组之外,还可以将文字索引放入数组中
    2014-04-04
  • 如何对PHP程序中的常见漏洞进行攻击(下)

    如何对PHP程序中的常见漏洞进行攻击(下)

    如何对PHP程序中的常见漏洞进行攻击(下)...
    2006-10-10
  • 基于mysql的bbs设计(五)

    基于mysql的bbs设计(五)

    基于mysql的bbs设计(五)...
    2006-10-10
  • PHP脚本的10个技巧(2)

    PHP脚本的10个技巧(2)

    PHP脚本的10个技巧(2)...
    2006-10-10
  • php语言注释,单行注释和多行注释

    php语言注释,单行注释和多行注释

    这篇文章主要介绍了php语言注释,单行注释和多行注释,需要的朋友可以参考下
    2018-01-01

最新评论