CAD工具之家's Archivers

From boitboy on 2013-07-09 21:34:06

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>

查看完整版本: PHP简单的防刷计数器--已经图片化

Tags:


©CAD工具之家
创办于:2013年5月24日