您好,登錄后才能下訂單哦!
這篇文章主要介紹yii自帶驗(yàn)證碼的實(shí)現(xiàn)方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
總共分為三個(gè)方面:控制器配置、模型rules配置和視圖配置。
第一步:控制器配置
將下列代碼配置在actions中,請(qǐng)求驗(yàn)證碼鏈接對(duì)應(yīng)為 “控制器/captcha”。
'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', // 'backColor'=>0x000000,//背景顏色 'maxLength' => 4, //最大顯示個(gè)數(shù) 'minLength' => 4,//最少顯示個(gè)數(shù) 'padding' => 5,//間距 'height'=>45,//高度 'width' => 75, //寬度 // 'foreColor'=>0xffffff, //字體顏色 'offset'=>4, ],
第二步:模型rules配置,即驗(yàn)證配置。
首先聲明公共變量
public $verifyCode
其次在rules方法中配置驗(yàn)證
['verifyCode', 'captcha','captchaAction'=>'user/captcha','on' => ['login']]
在這條配置中的"captchaAction"加入了配置,即控制器的路由,如果不進(jìn)行配置的話會(huì)走site/captcha的路由,這是框架樣例的路由。
第三步:視圖中的配置
在ActiveForm中加入如下代碼:
<?= $form->field($model,'verifyCode')->widget( Captcha::className(), [ 'template' => '{image}{input}', 'captchaAction'=>'user/captcha', // 此注意要使用自己配置的那個(gè)控制器驗(yàn)證碼路由 'imageOptions'=>[ 'style'=>'cursor:pointer;width:77px'] ] )
最后有一個(gè)巨坑的問(wèn)題:由于編碼過(guò)程中使用了一些windows下的換行符或者空格,導(dǎo)致了未知的輸出,會(huì)導(dǎo)致驗(yàn)證碼圖片不能夠正常的生成。
這是需要在CaptchaAction類中的renderImageByGD方法中加入如下代碼:
imagecolordeallocate($image, $foreColor); ob_clean(); // 此行為插入代碼,目的是清空緩存區(qū)為輸出圖片提供干凈空間。 ob_start(); imagepng($image); imagedestroy($image);
以上是“yii自帶驗(yàn)證碼的實(shí)現(xiàn)方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。