您的位置:首页 > 运维架构 > 网站架构

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

2015-01-15 14:08 330 查看
以下为本篇文章全部内容:

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

预防刷新代码1:

<?php

session_start();

$k=$_GET['k'];

$t=$_GET['t'];

$allowTime = 1800;//防刷新时间

$ip = get_client_ip();

$allowT = md5($ip.$k.$t);

if(!isset($_SESSION[$allowT]))

{

$refresh = true;

$_SESSION[$allowT] = time();

}elseif(time() - $_SESSION[$allowT]>$allowTime){

$refresh = true;

$_SESSION[$allowT] = time();

}else{

$refresh = false;

}

?>

预防刷新代码2:

<?

session_start();

if(!empty($_POST[name])){

$data = $_POST[name];

$tag = $_POST[tag];

if($_SESSION[status]==$tag){

echo $data;

}else{

echo "不允许刷新!";

}

}

$v = mt_rand(1,10000);

?>

<form method="post" name="magic" action="f5.php"><input type="hidden"

name="tag" value="<?=$v?>"><input type=text name="name"><input type="submit" value="submit">

</form>

<?

echo $v;

$_SESSION[status] = $v;

?>

预防刷新代码3:

<?php

session_start();

$allow_sep = "2";

if (isset($_SESSION["post_sep"]))

{

if (time() - $_SESSION["post_sep"] < $allow_sep)

{

exit("请不要频繁刷新,休息2秒再刷新吧");

}

else

{

$_SESSION["post_sep"] = time();

}

}

else

{

$_SESSION["post_sep"] = time();

}

?>

因为上面的代码是基于 session的验证,假如你在2秒内刷新了页面,那么它会执行exit() 函数输出一条消息,并退出当前脚本。于是就不会加载下面的内容,所以这段代码最好放在header中,先让代码执行,再加载其他的东西。如果把代码放在了footer里,结果整个页面都加载了只在最后一行输出了“请不要频繁刷新”,放在header中,效果比较好。

其实最好的方法是新建一个forbiddenCC.php文件,然后在header调用。

这样做有两个好处:

一个是修改功能代码方便,不用每次都打开header文件,也不怕误改了其他地方的代码,

二是一旦出错,可以快速修改并检查,甚至可以直接删除文件。

<?php include(‘includes/forbiddenCC.php’); ?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

PS:这篇文章是我刚刚流量互联网在一个WP博客上找到的,可是尼玛文章转载重新编辑后我手贱不小心把浏览器中本篇文章源站点给关掉了。我晕,不是骚包不写出处哈,实在是找了一圈没找到……
嘿嘿,出处找到了,现在补上:
http://www.qinghuo.net/network/2981.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: