PHP简单的防刷计数器–已经图片化

请先把线面的内容导入数据库

CREATE TABLE aibiancheng_counter(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_ip CHAR(25) NOT NULL,
diftime INT UNSIGNED NOT NULL,
PRIMARY KEY(id)
);

//counter.php

<html>

<head>
   <title></title>
</head>

<body>
<?php
   global $ip,$now;
   global $dbhost,$dbuser,$dbpassword,$imgpath;
   //下面的配置文件必须准确的填写,不然的话,肯定运行不正常的
   $dbhost=”您的MYSQL服务器名”;   //如果你的空间和MYSQL数据库在一起的话一般是localhost
   $dbuser=”用户名”;
   $dbpassword=”数据库密码”;
   $dbname=”数据库名”;
   //配置文件结束,下面的内容非有必要,请勿改动
$user_IP = ($_SERVER[“HTTP_VIA”]) ? $_SERVER[“HTTP_X_FORWARDED_FOR”] : $_SERVER[“REMOTE_ADDR”];

$user_IP = ($user_IP) ? $user_IP : $_SERVER[“REMOTE_ADDR”];

//echo $user_IP;

//下面的内容是一个函数用来得到访问者的IP
function get_real_ip(){

$ip=false;

if(!empty($_SERVER[“HTTP_CLIENT_IP”])){

   $ip = $_SERVER[“HTTP_CLIENT_IP”];

}

if (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) {

   $ips = explode (“, “, $_SERVER[‘HTTP_X_FORWARDED_FOR’]);

   if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

   for ($i = 0; $i < count($ips); $i++) {

    if (!eregi (“^(10|172\.16|192\.168)\.”, $ips[$i])) {

     $ip = $ips[$i];

     break;

    }

   }

}

return ($ip ? $ip : $_SERVER[‘REMOTE_ADDR’]);

}

//获取访问者的IP结束,下面的内容是展示访问者的IP
$ip=get_real_ip();
//展示访问者的IP结束,下面的内容是获得登录时服务器的时间
$now=time();
//下面的语句中减去了一个庞大的数,这是为了减小数据量因为time函数得到的是当前的时间
//它是以一个比较老的时间做起点,如果我们用它的起点,数据量将比较的庞大,减去一个很大的数
//可以让我们的数据处理简单,占用的数据库空间小
$now=$now-1188032807;
//下面的语句是用来查询相同的IP在你的网站上的访问记录的
     $link = mysql_connect($dbhost, $dbuser, $dbpassword)
         or die(“Could not connect : ” . mysql_error());
     mysql_select_db($dbname) or die(“Could not select database”);

     /* 执行 SQL 查询 */
     global $result;
     $query = “SELECT * FROM aibiancheng_counter WHERE user_ip=’$ip'”;
     $result = mysql_query($query) or die(“Query failed : ” . mysql_error());
     global $col_value;
     while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
         foreach ($line as $col_value);
     if((!$result)||$now-$col_value>=600)//600s是用来防止恶意刷新,自己根据网站的统计要求配置
     {
     $con = mysql_connect($dbhost,$dbuser,$dbpassword);
mysql_select_db($dbname, $con);
$strSql=”insert    into    aibiancheng_counter (user_ip,diftime)
     values(‘$ip’,’$now’)”;
   $result=mysql_query($strSql,$con);
mysql_close($con);
}
/*连接数据库*/
$link = mysql_connect($dbhost, $dbuser, $dbpassword)
         or die(“Could not connect : ” . mysql_error());
     mysql_select_db($dbname) or die(“Could not select database”);

     /* 执行 SQL 查询 */
     $query = “SELECT * FROM aibiancheng_counter”;
     $result = mysql_query($query) or die(“Query failed : ” . mysql_error());
     global $counter,$counter_len;
     while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
     $counter++;
$counter_len=strlen($counter);
for($i=8-$counter_len;$i>0;$i–)
echo “<img src=’pic/0.jpg’ align=left>”; //这里涉及到图片,如果你使用的不是JPG的请更改,或者文件夹名不一样,请改
   for($i=0;$i<$counter_len;$i++)
   {
   $number=substr($counter,$i,1);
   if(isset($number))
   {
     echo “<img src=’pic/”.$number.”.jpg’ align=left>”;//同上说明
   }
   }
?>

 

</body>

</html>

此条目发表在网站建设分类目录。将固定链接加入收藏夹。

发表评论