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

  可以实现在线人数统计,日访问量统计,月访问量统计。。。。。

  <?

  $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>

  欢迎来我的网站来灌水,有什么问题,给我留言。