当初、yii2 フレームワークの検証コードは非常に包括的であると考えていましたが、Baidu と Google を試してみたところ、ほとんどのチュートリアルが分散していて不完全であることがわかり、完全な手順を含む検証コードのチュートリアルを書こうと考えました。
サイト/ログインフォームのログインには確認コードの追加が必要であると想定しています。
1. siteController コントローラーのアクション メソッドは、キャプチャ設定を追加します
public function actions() { return [ 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'maxLength' => 4, 'minLength' => 4 ], ]; }
このために、どのような設定項目があるのか興味がある人もいます。コードの背景色、フォント ファイル、その他の設定を含む、vendaryiisoftyii2captcha ファイルを表示します。
2. siteController の設定を続けます。
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'actions' => ['login', 'error', 'captcha'], 'allow' => true, ], ], ]; }
アクセス ルールのアクションにキャプチャ メソッドのアクセシビリティを追加します。
3. ビューレイヤーを見て、確認コードの入力を追加してみましょう。
use yii\captcha\Captcha; <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [ 'template' => '<div><div>{image}</div><div>{input}</div></div>', ]) ?>
4. これで十分でない場合は、検証コードの検証ルールも追加する必要があります
ここでは LoginForm を使用しているので、LoginForm ファイルを変更します
class LoginForm extends Model { //...... public $verifyCode; public function rules() { return [ //...... ['verifyCode', 'captcha'], ]; } public function attributeLabels() { return [ 'verifyCode' => '', //验证码的名称,根据个人喜好设定 ]; } } //定义了verifyCode属性 //rules规则添加了验证 //label中定义了其显示名称
5. 4番目の手順へ 確認コードが設定されると、正常に表示されます。バックグラウンドで rbac 権限制御が設定されている場合は、構成に /site/captcha のアクセス許可を accss として追加する必要があると思います。
6. 効果を確認してください。
7. ページを更新しても確認コードが更新されないのはなぜかと質問した生徒もいましたが、個人的には、更新されるかどうかは関係ないと思います。確認コードは間違って入力した場合にのみ更新されます。確認コードが表示され、ページが更新されます。確認コードに従うためにページを更新する必要がある場合は、それを実現する簡単な方法を試してください。
$('验证码对象').click();
つまり、ページが更新されたときに確認コードをもう一度クリックすると、強制的に更新されます。
上記は編集者が紹介したYii2での認証コード追加手順です。皆様のお役に立てれば幸いです。
上記では、yii と検証コードの内容を含め、Yii2 に検証コードを追加する詳細な手順を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。