最新公告
  • 欢迎加入中国站长资源网团队,精品资源持续增加!立即加入我们
  • PHP禁止频繁刷新方法

    PHP禁止同IP频繁访问以防止网站被攻击或采集代码,可以参考代码自己建立数据表文件,或不建立也可以使用,只是限制IP的功能就无法使用,但防止刷新可以继续使用。

    header('Content-type: text/html; charset=utf-8');
    $ip=$_SERVER['REMOTE_ADDR'];//获取当前访问者的ip
    $logFilePath='./log/';//日志记录文件保存目录
    $fileht='.htaccess2';//被禁止的ip记录文件
    $allowtime=60;//防刷新时间
    $allownum=5;//防刷新次数
    $allowRefresh=120;//在允许刷新次数之后加入禁止ip文件
    if(!file_exists($fileht)){
    file_put_contents($fileht,'');
    }
    $filehtarr=@file($fileht);
    if(in_array($ip."rn",$filehtarr)){
    exit('警告:你的IP已经被禁止了!');
    } 
    //加入禁止ip
    $time=time();
    $fileforbid=$logFilePath.'forbidchk.dat';
    if(file_exists($fileforbid)){
    if($time-filemtime($fileforbid)>30){
    @unlink($fileforbid);
    }else{
    $fileforbidarr=@file($fileforbid);
    if($ip==substr($fileforbidarr[0],0,strlen($ip))){
    if($time-substr($fileforbidarr[1],0,strlen($time))>120){
    @unlink($fileforbid);
    }else if($fileforbidarr[2]>$allowRefresh){
    file_put_contents($fileht,$ip."rn",FILE_APPEND);
    @unlink($fileforbid);
    }else{
    $fileforbidarr[2]++;
    file_put_contents($fileforbid,$fileforbidarr);
    }
    }
    }
    }
    //防刷新
    $str='';
    $file=$logFilePath.'ipdate.dat';
    if(!file_exists($logFilePath)&&!is_dir($logFilePath)){
    mkdir($logFilePath,0777);
    }
    if(!file_exists($file)){
    file_put_contents($file,'');
    }
    $uri=$_SERVER['REQUEST_URI'];//获取当前访问的网页文件地址
    $checkip=md5($ip);
    $checkuri=md5($uri);
    $yesno=true;
    $ipdate=@file($file);
    foreach($ipdate as $k=>$v){
    $iptem=substr($v,0,32);
    $uritem=substr($v,32,32);
    $timetem=substr($v,64,10);
    $numtem=substr($v,74);
    if($time-$timetem<$allowtime){
    if($iptem!=$checkip){
    $str.=$v;
    }else{
    $yesno=false;
    if($uritem!=$checkuri){
    $str.=$iptem.$checkuri.$time."rn";
    }else if($numtem<$allownum){
    $str.=$iptem.$uritem.$timetem.($numtem+1)."rn";
    }
    else{
    if(!file_exists($fileforbid)){
    $addforbidarr=array($ip."rn",time()."rn",1);
    file_put_contents($fileforbid,$addforbidarr);
    }
    file_put_contents($logFilePath.'forbided_ip.log',$ip.'--'.date('Y-m-d H:i:s',time()).'--'.$uri."rn",FILE_APPEND);
    $timepass=$timetem+$allowtime-$time;
    exit('警告:不要刷新的太频繁!');
    }
    }
    }
    }
    if($yesno){
    $str.=$checkip.$checkuri.$time."rn";
    }
    file_put_contents($file,$str);

    如果遇到资源下载失效,请复制当前文章链接类型客服处理!
    中国站长资源网 » PHP禁止频繁刷新方法

    常见问题FAQ

    【点击查看】免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    【点击查看】提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    【点击查看】开通终身至尊下载源码 “不完整” 或 “不能用” 怎么办?
    非常抱歉,你有权利告诉本站,但是本站有选择处理或者不处理的权力,如无法接受请不要开通本站会员。
    【点击查看】开通终身会员能下载全站资源码?
    可以100%下载全站源码资源的,除部分失效资源,失效的可以联系客服尝试恢复。

    发表评论