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

以下为本篇文章全部内容:

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





预防刷新代码1:



  
  
  1. <?php
  2.  
  3. session_start();
  4.  
  5. $k=$_GET['k'];
  6.  
  7. $t=$_GET['t'];
  8.  
  9. $allowTime = 1800;//防刷新时间
  10.  
  11. $ip = get_client_ip();
  12.  
  13. $allowT = md5($ip.$k.$t);
  14.  
  15. if(!isset($_SESSION[$allowT]))
  16.  
  17. {
  18.  
  19. $refresh = true;
  20.  
  21. $_SESSION[$allowT] = time();
  22.  
  23. }elseif(time() - $_SESSION[$allowT]>$allowTime){
  24.  
  25. $refresh = true;
  26.  
  27. $_SESSION[$allowT] = time();
  28.  
  29. }else{
  30.  
  31. $refresh = false;
  32.  
  33. }
  34.  
  35. ?>
预防刷新代码2:



  
  
  1. <?
  2.  
  3. session_start();
  4.  
  5. if(!empty($_POST[name])){
  6.  
  7. $data = $_POST[name];
  8.  
  9. $tag = $_POST[tag];
  10.  
  11. if($_SESSION[status]==$tag){
  12.  
  13. echo $data;
  14.  
  15. }else{
  16.  
  17. echo "不允许刷新!";
  18.  
  19. }
  20.  
  21. }
  22.  
  23. $v = mt_rand(1,10000);
  24.  
  25. ?>
  26.  
  27. <form method="post" name="magic" action="f5.php"><input type="hidden"
  28.  
  29. name="tag" value="<?=$v?>"><input type=text name="name"><input type="submit" value="submit">
  30.  
  31. </form>
  32.  
  33. <?
  34.  
  35. echo $v;
  36.  
  37. $_SESSION[status] = $v;
  38.  
  39. ?>

预防刷新代码3:



  
  
  1. <?php
  2.  
  3. session_start();
  4.  
  5. $allow_sep = "2";
  6.  
  7. if (isset($_SESSION["post_sep"]))
  8.  
  9. {
  10.  
  11. if (time() - $_SESSION["post_sep"] < $allow_sep)
  12.  
  13. {
  14.  
  15. exit("请不要频繁刷新,休息2秒再刷新吧");
  16.  
  17. }
  18.  
  19. else
  20.  
  21. {
  22.  
  23. $_SESSION["post_sep"] = time();
  24.  
  25. }
  26.  
  27. }
  28.  
  29. else
  30.  
  31. {
  32.  
  33. $_SESSION["post_sep"] = time();
  34.  
  35. }
  36.  
  37. ?>

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

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

这样做有两个好处:

一个是修改功能代码方便,不用每次都打开header文件,也不怕误改了其他地方的代码,
二是一旦出错,可以快速修改并检查,甚至可以直接删除文件。


  
  
  1. <?php include(‘includes/forbiddenCC.php’); ?>
  2. <!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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值