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 相关文章推荐
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
Jun 20 PHP
php格式化金额函数分享
Feb 02 PHP
使用PHP编写发红包程序
Jul 22 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
Laravel登录失败次数限制的实现方法
Aug 26 PHP
详解PHP Swoole与TCP三次握手
May 27 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处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
javascript 面向对象 function类
2010/05/13 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python三元运算实现方法
2015/01/12 Python
Python 专题一 函数的基础知识
2017/03/16 Python
基于python绘制科赫雪花
2018/06/22 Python
一看就懂得Python的math模块
2018/10/21 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
会计专业毕业生推荐信
2013/11/05 职场文书
教育学专业实习生的自我鉴定
2013/11/26 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang