记一次 thinkphp5令牌验证防止重复提交表单

因为项目需要表单提交,可是发现了必须要防止用户提交,经过了几个小时的百度旅游总算找到的方法,其实说到底还是看官方手册来的头绪,以后看来要多看。。。。。。。

其实好像就是验证器中加入token的验证而已,撸代码吧

首先在html的from中加入下列代码,其实官方手册有说明的

{:token()}
或者
<input type="hidden" name="__token__" value="{$Request.token}" />

  然后再控制器中加入

        $token = input("__token__");//获取提交过来的令牌
        $data = [
            '__token__' => $token,
        ];
        //验证路由
        $rule = [
            '__token__' => 'token',
        ];
        //错误信息
        $msg = [
            '__token__'  => '请不要刷新该页面!',
        ];
        //引入验证类
        $validate   = Validate::make($rule,$msg);
        if (!$validate->check($data)) {
       //如果验证不通过则错误页面并显示错误信息,3s后跳转指定页面
            $this->error($validate->getError(), url("Index/index"));
        }else{  
       //通过后则正常进行

}        

  记得use think\Validate

快赶进度啊!!!还偷偷写博客园.........

猜你喜欢

转载自www.cnblogs.com/rengran/p/10186357.html