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的类树(支持无限分类)
Oct 09 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
php对数组排序的简单实例
Dec 25 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
Nov 29 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
Zend Framework动作助手Url用法详解
Mar 05 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 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
文件系统基本操作类
2006/11/23 PHP
Discuz 5.0 中读取纯真IP数据库函数分析
2007/03/16 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
JavaScript编写一个简易购物车功能
2016/09/17 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue 集成jTopo 处理方法
2019/08/07 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
玩转python爬虫之正则表达式
2016/02/17 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
Django中url的反向查询的方法
2018/03/14 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
贷款委托书怎么写
2014/08/02 职场文书
2015年党风廉政承诺书
2015/01/22 职场文书
内乡县衙导游词
2015/02/05 职场文书
紧急通知
2015/04/17 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
2019年工作总结范文
2019/05/21 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript