分享PHP防刷新代码从此网站不再被F5刷死


不晓得大家有没有遇到过网站被暴力F5刷新刷死的?如果你曾经的确遇到过这样的问题,那么接下来的文章可能?#38405;?#32780;言就是一片非常实用的好文了,骚包也是刚刚在流量互联网的时候无意中发现的这篇文章,现在把网站防F5刷新的代码分享给大家。

防刷新代码一:


<?php session_start(); $allow_sep = "60"; if (isset($_SESSION["post_sep"])){ if (time() - $_SESSION["post_sep"] < $allow_sep) {exit("孩子你能消停一下么?刷新请60秒后继续!小和资源博客:www.nisvie.tw");} else{$_SESSION["post_sep"] = time();} }else{$_SESSION["post_sep"] = time();} ?>

防刷新代码二:


<?php //代理IP直接退出 empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //防止快速刷新,在设置的时间内到达设置次数就跳转的设定的页面 session_start(); $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; } ?>

因为上面的代码是基于 session的验证,假如你在2秒内刷新了页面,那?#27492;?#20250;执行exit() 函数输出一条消息,并退出当前脚本。于是就不会加载下面的内容,所以这段代码最好放在header中,先让代码执行,再加载其他的东西。 如果把代码放在了footer里,结果整个页面都加载了只在最后一行输出了“请不要频繁刷新?#20445;?#25918;在header中,效果比较好。其实最好的方法是新建一个FCC.php文件,然后在header调用。


js屏蔽F5的方法:

<script> document.onkeydown = function(e){ e = window.event || e; var keycode = e.keyCode || e.which; if( keycode = 116){ if(window.event){// ie try{e.keyCode = 0;}catch(e){} e.returnValue = false; }else{e.preventDefault();} }} </script>

本博客所有文章如无特别注明均为原创——作者:小和 复制或转载请以超链接形式注明转自 小和博客
原文地址《分享PHP防刷新代码从此网站不再被F5刷死
分享到:更多

相关推荐

网友评论(4)

试过了,添加了第一个代码在首页打开乱码,我的错- -。
依然。 4年前 (2016-03-23) 回复
@依然。:我亲测是可以的,你的问题吧
小和 4年前 (2016-03-23) 回复
试试  今天遇到一次假死了  也不知道是真死还是假死
米粒博客 4年前 (2016-03-20) 回复
@米粒博客:可以,但这个我觉得没什?#20174;?/div>
小和 4年前 (2016-03-21) 回复