php计数器如何屏蔽刷新,php计数器的简单例子-php防止恶意刷新 快速刷新的...-php防止用户刷新 重复提交的方法_169IT.COM...

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

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:

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.

?>

方法2:

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.

?>

方法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);

?>

name="tag" value="=$v?>">

echo $v;

$_SESSION[status] = $v;

?>

您可能感兴趣的文章:

一个php计数器代码(防刷新、防灌水)

php防刷新计数器的代码(session方式)

php防止刷新页面重复提交的代码一例

你了解浏览器的刷新原理吗

php防止用户刷新 重复提交的方法

php防止恶意刷新页面的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值