• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-24) 16次浏览 已收录 0个评论

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

<?php
$now_time=time();//当前时间
$ipfile=”./images/ip.txt”;//文本数据存放文件
$old=file($ipfile);
$num=count($old);
for ($i=0;$i<$num;$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<100){//只记录100条,超过就删除最后100条前的记录
fputs($fp,$line);
for ($i=0;$i<$num;$i++){
fputs($fp,$old[$i]);
}}else{
fputs($fp,$line);
for($i=0;$i<99;$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

想要效果是:当访

!本文来源gaodai.ma#com搞##代!^码网(

搞gaodaima代码客的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)); //回写文件


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:文本数据库记录IP,如果IP已存在就不添加,没有就记录到文本数据中,调试总出错,高手

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址