用数据库实现的方式:建立点击统计表
file_name varchar(255) PRI
click_number int(11)
last_click_ip varchar(20)
last_click_time datetime

解决方案 »

  1.   

    file_name应该是包含相对路径的
      

  2.   

    # MySQL dump 8.12
    #
    # Host: localhost    Database: count
    #--------------------------------------------------------
    # Server version 3.23.32CREATE DATABASE count;USE count;#
    # Table structure for table 'counter'
    #CREATE TABLE counter (
      file_name varchar(255) NOT NULL,
      click_number int(11),
      last_click_ip varchar(20),
      last_click_time varchar(20),
      PRIMARY KEY (file_name)
    ) TYPE=MyISAM;#
    # Dumping data for table 'counter'
    #
    <?
    //counter.inc
    //计数器数量显示
    //运行环境: PHP4.0以上、MySQL2.23以上版本$host="localhost";
    $port="";
    $user="";
    $password="";
    $database="count";if ($port<>""){ $host=$host.":".$port;}$db=mysql_connect($host,$user,$password);
    mysql_select_db($database,$db);$sql = "select * from counter where file_name = '".$PHP_SELF."'";
    $res=mysql_query($sql);
    if (mysql_num_rows($res)>0)
    {
    $old_ip=mysql_result($res,0,"last_click_ip");
    $old_time=mysql_result($res,0,"last_click_time");
    $old_num=mysql_result($res,0,"click_number");
    }
    else
    {
    mysql_query("insert into counter values ('".$PHP_SELF."',1,'0.0.0.0','19800901194500')");
    }$now_ip=$REMOTE_ADDR;
    $now_time=date("Y").date("m").date("d").date("H").date("i").date("s");if ($now_ip<>$old_ip)
    {
    $now_num=$old_num+1;
    mysql_query("update counter set click_number='".$now_num."',last_click_ip='".$now_ip."',last_click_time='".$now_time."'");
    }
    else
    {
    $time_diff=$now_time - $old_time;
    if ($time_diff > 3000)
    {
    $now_num=$old_num+1;
    mysql_query("update counter set click_number='".$now_num."',last_click_ip='".$now_ip."',last_click_time='".$now_time."'");
    }
    else
    {
    $now_num=$old_num;
    }
    }
    //echo $now_num;
    ?>
      

  3.   

    在每个文件中require这个inc文件。如果去掉最后一行的注释,则会在require处显示当前文件的点击数。记数器功能:同一IP半个小时内刷新无效。