好!欢迎访问迷津渡口 现在时间是: 天气 °C ~ °C

迷津渡口

越感到迷惑 越接近真理

php防止访客F5频繁刷新页面

还是那句话,网络不是完美的,有时访客无聊无限刷新内容,有可能会造成服务器卡顿甚至卡死。于是,就有了防止F5刷新过于频繁的代码:

方法一:

<?php
$allow_sep = "60";
if (isset($_SESSION["post_sep"])){
if (time() - $_SESSION["post_sep"] < $allow_sep)
{exit("孩子你能消停一下么?刷新请60秒后继续!");}
else{$_SESSION["post_sep"] = time();}
}else{$_SESSION["post_sep"] = time();}
?>

方法二:推荐啦~

<?php
//代理IP直接退出,看自己需要是否要这句,禁止代理访问
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新,在设置的时间内到达设置次数就跳转的设定的页面
$seconds = '3'; //时间段[秒]
$refresh = '3'; //刷新次数
//设置监控变量
$cur_time = time();
if(isset($_SESSION['last_time'])){
  $_SESSION['refresh_times'] += 1;
}else{
  $_SESSION['refresh_times'] = 1;
  $_SESSION['last_time'] = $cur_time;
}
//处理监控结果
if($cur_time - $_SESSION['last_time'] < $seconds){
  if($_SESSION['refresh_times'] >= $refresh){
      //跳转至攻击者服务器地址
      header(sprintf('Location:%s', 'http://127.0.0.1'));
      exit('Access Denied');
  }
}else{
  $_SESSION['refresh_times'] = 0;
  $_SESSION['last_time'] = $cur_time;
}
?>

推荐将这段代码放到一个norefresh.php文件,然后在header.php调用。

默认设置为3秒内刷新达到3次就跳转到访客自己的本机页面,并输出拒绝访问的提示。

点赞0
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
LeeJon
 LeeJon 2016-07-30 10:43回复
#1
我直接加进去,没起作用,有关联吗?
小指
 小指 2016-09-10 22:35回复
@LeeJon:可能是无法使用$_SESSION,你用js和cookie判断来防止刷新试试吧~
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸