Search

与我们合作

我们专注:网站策划设计、网络多媒体传播、网站优化及网站营销、品牌策略与设计
主营业务:网站建设、移动端微信小程序开发、VI设计、网络运营、云产品·运维解决方案

有一个品牌项目想和我们谈谈吗?

您可以填写右边的表格,让我们了解您的项目需求,这是一个良好的开始,我们将会尽快与您取得联系。当然也欢迎您给我们写信或是打电话,让我们听到您的声音

您也可通过下列途径与我们取得联系:

地 址: 深圳.龙岗区大运软件小镇11栋3楼

电 话: 138 2888 4598 / 138 0880 9053

网 址: http://www.appvx.cn

快速提交您的需求 ↓

php防止恶意刷新 快速刷新的代码有哪些方式?

时间:2018-10-17 浏览:4452 编辑:深正互联 来源:互联网

首先,我们来分析下可选择的几种方式。

1、session记录

submit.php为发送页面,在这个页面上设置一个session变量,并作为隐藏域和表单一起发送到,submitdeal.php页面.在服务器把post来的隐藏变量和服务器端记录的session变量进行对比,比如一样,则写入数据库并清除session,这样用户刷新页面,两值不等时则提示错误或跳转到指定的页面。

优点:不用用户输入验证码

缺点:表单容易被复制

代码

2.验证码

原理同上,只是session数据不作为隐藏域提交,而是让用户填写,大多数网站都彩用,有文字验证码和图片验证码,图片验证码安全性高一些。

3.IP绑定

提交数据后,先从IP表里检索客户端IP,如果有,并且没有过期,那么报错,否则写入数据库,然后再取客房端IP,把IP写入数据库。

4.cookie

客户提交后处理程序先检索客户端有没有设置cookie,如果有,则不重复提交,如果没有,则写数据,,再写个cookie;

以下的三个示例代码,均采用第一种session控制的方法,因为不确定用户会不会禁用cookie。

方法1:

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

} //by www.jbxue.com        

?> 

方法2:

<?php  

session_start();  

$allow_sep = "30000";  

if (isset($_SESSION["post_sep"]))  

{  

if (time() - $_SESSION["post_sep"] < $allow_sep)  

{  

exit("哥们,吃撑着了吧,别点这么快得类");  

}  

else  

{  

$_SESSION["post_sep"] = time();  

}  

}  

else  

{  

$_SESSION["post_sep"] = time();  

} //by www.jbxue.com 

?>  

方法3:

<?  

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>  

<?  

echo $v;  

$_SESSION[status] = $v;  

?> 

本站文章均为深正网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...
GO 欣赏案例
查看经典案例
在线咨询
电话咨询
0755-36630177
返回顶部
在线咨询 获取报价 电话咨询
获取报价
您的称呼:

*

您的电话:

*

您的邮箱:

*

提交 重置
重要的事情,电话里聊

接通客服

不方便的时候线上咨询,在线等哦