Comment définir le style du code de vérification yii2
La première étape, contrôleur :
in Réécrivez la méthode
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, //设置字符偏移量 有效果 ], ]; }
dans n'importe quel contrôleur La deuxième étape est le modèle de formulaire :
Seule la partie liée au code de vérification est donnée ici.
Articles et tutoriels connexes recommandés : tutoriel yii
class ContactForm extends Model{ public $verifyCode; public function rules(){ return [ ['verifyCode', 'required'], ['verifyCode', 'captcha'], ]; } }
Le validateur du code de vérification dans la règle de vérification est captcha
.
La troisième étape, vue :
Utilisez ActiveForm pour générer les champs correspondants.
captchaAction
Le paramètre spécifie où la première étape est écrite. La valeur par défaut est à l'intérieur de site
.
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', ]) ?>
Code de vérification, tout le processus de génération et de vérification est terminé.
Ce qui précède est le processus de génération d'un code de vérification, car les numéros du code de vérification sont codés en dur dans le code. Que devons-nous faire si nous avons besoin de numéros ?
C'est facile à faire. Nous pouvons écrire nous-mêmes une classe pour hériter de CaptchaAction et remplacer la méthode generateVerifyCode. Exemple :
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; } }
Le fichier de classe est généré avec succès.
Ensuite, changez la configuration du contrôleur
'captcha' => [ 'class' => 'yii\captcha\Newcaptcha', 'maxLength' => 5, 'minLength' =>5 ],
D'accord, le changement est terminé, jetons un œil à l'effet !
Plus pour Pour plus de connaissances sur le framework Yii, vous pouvez regarder les cours d'apprentissage en programmation associés ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!