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

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

WBOY
WBOYOriginal
2016-06-13 13:11:33808Durchsuche

文本数据库记录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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn