1. 程式人生 > >記一次 thinkphp5令牌驗證防止重複提交表單

記一次 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

快趕進度啊!!!還偷偷寫部落格園.........