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 随机排序广告的实现代码
May 09 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
apache php模块整合操作指南
Nov 16 PHP
PHP以及MYSQL日期比较方法
Nov 29 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
php简单获取目录列表的方法
Mar 24 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
基于php数组中的索引数组和关联数组详解
Mar 12 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 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 保留小数点
2009/04/21 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
学习PHP session的传递方式
2016/06/15 PHP
javascript取消文本选定的实现代码
2010/11/14 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
js数组的操作指南
2014/12/28 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python计算圆周率pi的方法
2015/07/11 Python
在Django中创建第一个静态视图
2015/07/15 Python
pycharm新建一个python工程步骤
2019/07/16 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python numpy 常用随机数的产生方法的实现
2019/08/21 Python
Python文件路径名的操作方法
2019/10/30 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
建筑学推荐信
2013/11/03 职场文书
服装采购员岗位职责
2014/03/15 职场文书
求职意向书
2014/04/01 职场文书
人事任命书范本
2015/09/21 职场文书
新入职员工工作总结
2015/10/15 职场文书
家访教师心得体会
2016/01/23 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
Java 定时任务技术趋势简介
2022/05/04 Java/Android