文本数据库记录IP,如果IP已存在就不添加,没有就记录到文本数据中,调试总出错,高手

WBOY
Release: 2016-06-13 13:11:33
Original
876 people have browsed it

文本数据库记录IP,如果IP已存在就不添加,没有就记录到文本数据中,调试总出错,求助高手
文件一:

 $now_time=time();//当前时间
$ipfile="./images/ip.txt";//文本数据存放文件
 $old=file($ipfile);  
 $num=count($old);  
 for ($i=0;$i  list($txtusre,$txtzzip,$txttime)=explode("|",$old[$i]); 
 if($txtzzip=="$REMOTE_ADDR"){//比较访客IP文本数据中是否已存在
//已存在就跳过不记录


}else{

//不存在就记录
if (get_magic_quotes_gpc()) {
 if (!$fp = fopen($ipfile, "a+")) {
  die("创建文件失败, 请检查是否有权限.");
 }
 $line = $now_time."|".$REMOTE_ADDR."|".$now_time."\r\n";
 $old=file($ipfile);
 $num=count($old);
 $fp=fopen($ipfile, "w");
 flock($fp,2);
 if($num  fputs($fp,$line);
 for ($i=0;$i  fputs($fp,$old[$i]);
 }}else{
 fputs($fp,$line);
 for($i=0;$i  fputs($fp,$old[$i]);
 }}
 fclose($fp);
}}}
?>


文本数据文件ip.txt:
1348308290|127.0.0.1|1348308290
1348308289|127.0.0.1|1348308289
1348308275|127.0.0.2|1348308275


当只有一条记录时,能判断IP已存在,继续添加不存在的IP

当有二条记录时,判断已存在IP就失效了,刷新一次就记录一次重复IP


想要效果是:当访客的IP数据文件中不存中就添加一条,如存在,就不添加


请高手帮修正,谢谢


------解决方案--------------------
$REMOTE_ADDR这个变量的值需要你自己获取.
$now_time=time();//这一行可以删掉不要了.
------解决方案--------------------

PHP code
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$ipfile = "./images/ip.txt";
$s = file_get_contents($ipfile);
if(strstr($s, "|$ip|")) return; //存在就结束
$ar = preg_split("/[\r\n]+/", $s); //切割成数组
$ar = array_slice($ar, 0, 99); //取前99项
$ar[] = "$time|$ip|$time"; //添加新数据
file_put_contents($ipfile, join(PHP_EOL, $ar)); //回写文件 <div class="clear">
                 
              
              
        
            </div>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template