php防止网站被刷新的方法汇总


Posted in PHP onDecember 01, 2014

本文实例讲述了php防止网站被刷新的方法。分享给大家供大家参考。具体方法如下:

对于像采用WP建设的站来说,频繁的刷新会导致数据库吃紧。下面附上一段代码,防止频繁的刷新造成的死机情况。

方法一,代码如下:

<?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;       

}       

?>

方法二,代码如下:
<?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(); 

} 

?>

方法三,代码如下:
<?php 

session_start(); 

if(!emptyempty($_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>

<?php 

echo $v; 

$_SESSION[status] = $v; 

?>

注意:代码有了,不过要应用到WordPress还要一些其他操作.

因为上面的代码是基于 session的验证,假设你在2秒内刷新了页面,那么他会执行exit() 函数输出一条消息,并退出当前脚本,于是就不会加载下面的内容,所以这段代码最好放在header中,先让代码执行,再加载其他的东西.

如果把代码放在了footer里,结果整个页面都加载了只在最后一行输出了"请不要频繁刷新",放在header中,效果比较好,想看效果的话按两下F5 吧.

当然最好的是采用的是新建一个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">

这里要注意下,必须调用在所有页面的最前面.

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP3 safe_mode 失效漏洞
Oct 09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php获取后台Job管理的实现代码
Jun 10 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
Jul 05 PHP
PHP中redis的用法深入解析
Feb 20 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
phpstorm编辑器乱码问题解决
Dec 01 #PHP
php获取文章上一页与下一页的方法
Dec 01 #PHP
CI框架给视图添加动态数据
Dec 01 #PHP
php强制运行广告的方法
Dec 01 #PHP
PHP过滤黑名单关键字的方法
Dec 01 #PHP
php中print(),print_r(),echo()的区别详解
Dec 01 #PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 #PHP
You might like
PHP个人网站架设连环讲(一)
2006/10/09 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
element-ui 本地化使用教程详解
2019/10/28 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
Python在不同目录下导入模块的实现方法
2017/10/27 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
python扫描线填充算法详解
2020/02/19 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Python如何将模块打包并发布
2020/08/30 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
2014年工作总结及2015工作计划
2014/12/12 职场文书
先进个人材料怎么写
2014/12/30 职场文书
员工工作表扬信
2015/05/05 职场文书
简爱读书笔记
2015/06/26 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS