ホームページ  >  記事  >  バックエンド開発  >  yii2 に検証コードを追加する詳細な手順 yii2.0 検証コード yii 検証コードが表示されない yii2 カスタム検証

yii2 に検証コードを追加する詳細な手順 yii2.0 検証コード yii 検証コードが表示されない yii2 カスタム検証

WBOY
WBOYオリジナル
2016-07-29 08:52:091242ブラウズ

著者: 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. 効果を確認してください。

yii2 验证码,yii,yii 获取验证码,yii 验证码不正确,验证码,yii 验证码不刷新,yii2.0 验证码,yii 验证码 不显示,yii2 自定义验证

7. ページを更新しても検証コードが更新されないのはなぜかと質問した生徒もいましたが、個人的には、検証コードが更新されるかどうかは関係ないと思います。間違った検証コードを入力した場合にのみ更新されます。そしてページが更新されます。確認コードに従うためにページを更新する必要がある場合は、それを実現する簡単な方法を試してください。

$('検証コード オブジェクト').click();

つまり、ページが更新されたときにもう一度検証コードをクリックすると、強制的に更新されます。

上記では、yii と検証コードの内容を含め、yii2 に検証コードを追加する詳細な手順を紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。