yii2驗證碼樣式如何設定
#第一步,控制器:
##在任何controller裡面重寫方法public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, 'backColor' => 0x000000,//背景颜色 'maxLength' => 6, //最大显示个数 'minLength' => 5,//最少显示个数 'padding' => 5,//间距 'height' => 40,//高度 'width' => 130, //宽度 'foreColor' => 0xffffff, //字体颜色 'offset' => 4, //设置字符偏移量 有效果 ], ]; }
第二步,表單模型:##這裡只給驗證碼相關的部分。
相關文章教學推薦:
yii教學captcha。
用ActiveForm產生對應欄位。
captchaAction參數指定第一步是寫在哪裡的,預設是site
裡面。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"> <?= $form->field($model, &#39;verifyCode&#39;)->widget(Captcha::className(), [
&#39;template&#39; => &#39;<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>&#39;,
]) ?></pre><div class="contentsignin">登入後複製</div></div>
驗證碼,產生和驗證的整個流程就完成了。
以上是產生驗證碼的流程,因為驗證碼數字是在程式碼中寫死的,如果我們需要數字的話,那該怎麼辦呢?
很好辦,我們可以自己寫個類別來繼承CaptchaAction,重寫generateVerifyCode方法,範例:
namespace yii\captcha; class Newcaptcha extends CaptchaAction { protected function generateVerifyCode() { if ($this->minLength > $this->maxLength) { $this->maxLength = $this->minLength; } if ($this->minLength < 3) { $this->minLength = 3; } if ($this->maxLength > 20) { $this->maxLength = 20; } $length = mt_rand($this->minLength, $this->maxLength); $letters = '1234567890123456789012'; $vowels = 'aeiou'; $code = ''; for ($i = 0; $i < $length; ++$i) { if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) { $code .= $vowels[mt_rand(0, 4)]; } else { $code .= $letters[mt_rand(0, 20)]; } } return $code; } }
產生類別檔案成功。
然後再更改控制器的配置'captcha' => [ 'class' => 'yii\captcha\Newcaptcha', 'maxLength' => 5, 'minLength' =>5 ],
更多yii框架知識,可以觀看相關
程式學習課程以上是yii2驗證碼樣式如何設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!