2020-08-18 10:02:43 1464次浏览 2条回答 0 悬赏 10 金钱

PHP 如何使用 Redis 限制表单提交成功五次后不能再提交了?我发现这样写好像不行,不能判断是否入库成功

/**************/
//获取当前的ip,限制每个ip只能提交五次
$user_ip = Common_Common::getRealIp();
if($user_ip){
    //这个key记录该用户的访问次数
    $key = $user_ip;
    //定义限制次数
    $limit = 5;
    $redis = new \Redis();
    $redis->connect('127.0.0.1', 6379, 30);
    $check = $redis->exists($key);
    if($check){
        if(Service_VideoComment::add($row)){
            $redis->incr($key);  //键值递增
            $count = $redis->get($key);
            if($count > $limit){
                $return = array(
                    "status" => 0,
                    "msg"    => "温馨提示:您的信息已存在,请直接咨询在线客服!"
                );
                exit(json_encode($return));
            }
        }
    }else{
        if(Service_VideoComment::add($row)){
            $redis->incr($key);
        }
    }
}
/**************/

最佳答案

  • 51883 发布于 2020-08-19 10:13 举报

    每次进来查一下这个ip的提交次数,如果大于等于5次,直接驳回。
    不大于5在下面进行表单入库,入库成功后当前ip提交次数加1。

您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题