Heim > Artikel > PHP-Framework > So legen Sie den Stil des yii2-Bestätigungscodes fest
So legen Sie den yii2-Bestätigungscode-Stil fest
Der erste Schritt, Controller:
in Schreiben Sie die Methode
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, //设置字符偏移量 有效果 ], ]; }
in einem beliebigen Controller um. Der zweite Schritt ist das Formularmodell:
Hier wird nur der Teil angegeben, der sich auf den Bestätigungscode bezieht.
Empfohlene verwandte Artikel und Tutorials: yii-Tutorial
class ContactForm extends Model{ public $verifyCode; public function rules(){ return [ ['verifyCode', 'required'], ['verifyCode', 'captcha'], ]; } }
Der Validator des Verifizierungscodes in der Verifizierungsregel ist captcha
.
Der dritte Schritt, Ansicht:
Verwenden Sie ActiveForm, um die entsprechenden Felder zu generieren.
captchaAction
Der Parameter gibt an, wo der erste Schritt geschrieben wird. Die Standardeinstellung ist 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>', ]) ?>
Verifizierungscode, der gesamte Prozess der Generierung und Verifizierung ist abgeschlossen.
Das Obige ist der Prozess der Generierung eines Verifizierungscodes, da die Verifizierungscodenummern im Code fest codiert sind. Was sollen wir tun, wenn wir Nummern benötigen?
Das geht ganz einfach. Wir können selbst eine Klasse schreiben, um CaptchaAction zu erben und die Methode „generateVerifyCode“ zu überschreiben:
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; } }
Die Klassendatei wurde erfolgreich generiert.
Dann ändern Sie die Controller-Konfiguration
'captcha' => [ 'class' => 'yii\captcha\Newcaptcha', 'maxLength' => 5, 'minLength' =>5 ],
Okay, die Änderung ist abgeschlossen, schauen wir uns den Effekt an!
Mehr für Weitere Informationen zum Yii-Framework finden Sie in den entsprechenden Lernkursen zum Programmieren! !
Das obige ist der detaillierte Inhalt vonSo legen Sie den Stil des yii2-Bestätigungscodes fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!