防止重复提交表单

防止重复提交表单, 需要从两方面防范:前端和后端

 

一、前端(防止重复提交表单)

<script type="text/javascript">
    // 防止重复提交表单
    var isCommitted = false;
    function checkPost() {
        if (!isCommitted) {
            isCommitted = true;
            return true;
        }else {
            alert("不能重复提交表单,请等待片刻");
            return false;
        }
    }
</script>

 

二、后端(防止重复提交表单)

    protected static $form_token_key = "xxxr_pay_form_token";

    public function xxxx() { 

        // ……………………
        // 防止页面重复提交的token
        $form_token = md5(microtime(true));
        session(self::$form_token_key, $form_token);
        $this->assign('form_token', $form_token);
   
    }

    public function do_xxxx() {

         // ………………
  
        // 防止页面重复提交的token
        $form_token = I('post.form_token', '');
        $s_form_token = session(self::$form_token_key);
        session(self::$form_token_key, null);
        if (empty($form_token) || $s_form_token != $form_token) {
            Log::record('重复提交表单', 'DEBUG');
            $this->error('禁止重复提交订单', $success_url, 2);
            exit();
        }

    }

 

posted @ 2017-05-05 15:39  王宇walkOn  阅读(233)  评论(0编辑  收藏  举报