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与javascript对多项选择的处理
Oct 09 PHP
Access数据库导入Mysql的方法之一
Oct 09 PHP
PHP学习之PHP运算符
Oct 09 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 PHP
PHP分页详细讲解(有实例)
Oct 30 PHP
简单的php新闻发布系统教程
May 09 PHP
php获得文件大小和文件创建时间的方法
Mar 13 PHP
PHP实现递归无限级分类
Oct 22 PHP
通过php动态传数据到highcharts
Apr 05 PHP
php中通用的excel导出方法实例
Dec 30 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
Symfony生成二维码的方法
2016/02/04 PHP
nodejs教程之环境安装及运行
2014/11/21 NodeJs
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python中类的一些方法分析
2014/09/25 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
浅谈Python处理PDF的方法
2017/11/10 Python
python逆向入门教程
2018/01/15 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
django中的图片验证码功能
2019/09/18 Python
python归并排序算法过程实例讲解
2020/11/04 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
驾驶员安全责任书
2014/07/22 职场文书
作风建设年活动总结
2014/08/27 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Python3 如何开启自带http服务
2021/05/18 Python
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
windows系统安装配置nginx环境
2022/06/28 Servers
MySQL深分页问题解决思路
2022/12/24 MySQL