防止表单重复提交

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

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

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

1

2

3

{: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

你可能感兴趣的:(防止表单重复提交)