這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用YII2框架怎么實(shí)現(xiàn)一個(gè)驗(yàn)證碼功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
首先我們?cè)诳刂破骼飫?chuàng)建一個(gè)actions方法,用于使用yii\captcha\CaptchaAction
request->isPost) { //獲取post過(guò)來(lái)的驗(yàn)證碼 $verify = YII::$app->request->post('verify'); //我們手動(dòng)進(jìn)行驗(yàn)證,第二個(gè)參數(shù)表示是否區(qū)分大小寫 if ($this->createAction('captcha')->validate($verify, false)) { echo '成功'; } else { echo '失敗'; } } else { return $this->renderPartial('index'); } } //actions的作用主要是共用功能相同的方法 //當(dāng)用戶訪問(wèn)index/captcha時(shí),actions就會(huì)調(diào)用yii\captcha\CaptchaAction方法 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => null, //背景顏色 'backColor' => 0x000000, //較大顯示個(gè)數(shù) 'maxLength' => 4, //最少顯示個(gè)數(shù) 'minLength' => 4, //間距 'padding' => 2, //高度 'height' => 30, //寬度 'width' => 85, //字體顏色 'foreColor' => 0xffffff, //設(shè)置字符偏移量 'offset' => 4, ], ]; } }
顯示頁(yè)面代碼如下:
分頁(yè)顯示
演示結(jié)果如下:
上面控制器中驗(yàn)證碼的驗(yàn)證方式是我們手動(dòng)的。我們也可以創(chuàng)建一個(gè)模型配置rules()來(lái)自動(dòng)完成。
'請(qǐng)?zhí)顚戲?yàn)證碼'], //注意captchaAction的設(shè)置,指向你顯示驗(yàn)證碼的action,這里我們的是index/captcha ['verify', 'captcha', 'captchaAction' => 'index/captcha', 'caseSensitive' => false, 'message' => '驗(yàn)證碼錯(cuò)誤'], ]; } }
控制器代碼修改如下:
request->isPost) { $verify = new VerifyForm(); $verify->load(YII::$app->request->post(), ''); //自動(dòng)驗(yàn)證 if ($verify->validate()) { echo '成功'; } else { var_dump($verify->errors); } } else { return $this->renderPartial('index'); } } //actions的作用主要是共用功能相同的方法 //當(dāng)用戶訪問(wèn)index/captcha時(shí),actions就會(huì)調(diào)用yii\captcha\CaptchaAction方法 public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => null, //背景顏色 'backColor' => 0x000000, //較大顯示個(gè)數(shù) 'maxLength' => 4, //最少顯示個(gè)數(shù) 'minLength' => 4, //間距 'padding' => 2, //高度 'height' => 30, //寬度 'width' => 85, //字體顏色 'foreColor' => 0xffffff, //設(shè)置字符偏移量 'offset' => 4, ], ]; } }
上述就是小編為大家分享的使用YII2框架怎么實(shí)現(xiàn)一個(gè)驗(yàn)證碼功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。