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