php cookie计数器,php cookie实现计数时要注意的问题

今天在写一个 IP+cookie 限制客户断重复刷新的时候,遇到一个问题。

if(!isset($_COOKIE['card_user'])){

setcookie("card_user", $_SERVER['REMOTE_ADDR'] , time()+60*60*24);

setcookie("card_user_time", 1 , time()+60*60*24);

}else{

if( $_COOKIE["card_user"] == $_SERVER['REMOTE_ADDR'] ){

if( $_COOKIE['card_user_time'] > $config['max'] ){

$isMax = true;

}else{

setcookie("card_user_time", $_COOKIE['card_user_time']+1);

}

}else{

setcookie("card_user", $_SERVER['REMOTE_ADDR'] , time()+60*60*24);

setcookie("card_user_time", 1 , time()+60*60*24);

}

}

在使用上面代码的时候,不关闭浏览器正常,关闭浏览器后发现,又可以再刷新了,

最后发现一个问题,同一IP在实现计数器的时候,没给cookie加上过期时间,浏览器一关闭就失效了。

纠结了好久的问题终于得到解决,修改后的代码如下,测试正常。

setcookie("card_user_time", $_COOKIE['card_user_time']+1 , time()+60*60*24);

总结:

对于php cookie这个东西,不能update,只能重新赋值,并且一定别忘记,加个lifetime。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值