yii 検証コードの使用と検証プロセス
Jun 13, 2016 pm 12:27 PM
yii 検証コードの使用と検証プロセス
このプロセスを?qū)g裝するには、いくつかの手順が必要です
最初のステップはコントローラーの操作です
操作対象のコントローラー 次のコードを追加します。
public function actions(){return array( // captcha action renders the CAPTCHA image displayed on the contact page'captcha'=>array('class'=>'CCaptchaAction','backColor'=>0xFFFFFF, 'maxLength'=>'8', // 最多生成幾個(gè)字符'minLength'=>'7', // 最少生成幾個(gè)字符'height'=>'40','width'=>'230',), ); }public function accessRules(){return array(array('allow','actions'=>array('captcha'),'users'=>array('*'),),);}
2 番目のステップは、ビューを操作することです
確認(rèn)コードを表示したい:
<div class="control-group"><?php $this->widget('CCaptcha',array('showRefreshButton'=>true,'clickableImage'=>false,'buttonLabel'=>'刷新驗(yàn)證碼','imageOptions'=>array('alt'=>'點(diǎn)擊換圖','title'=>'點(diǎn)擊換圖','style'=>'cursor:pointer','padding'=>'10'))); ?></div>
3 番目のステップは LoginForm の操作です
<?php/*** LoginForm class.* LoginForm is the data structure for keeping* user login form data. It is used by the 'login' action of 'SiteController'.*/class LoginForm extends CFormModel{public $username;public $password;public $rememberMe;public $verifyCode;private $_identity;/*** Declares the validation rules.* The rules state that username and password are required,* and password needs to be authenticated.*/public function rules(){return array(// username and password are required// array('username, password', 'required'),array('username','required','message'=>'登錄帳號(hào)不能為空'),array('password','required','message'=>'密碼不能為空'),array('verifyCode','required','message'=>'驗(yàn)證碼不能為空'),array('verifyCode','captcha', 'on'=>'login','allowEmpty'=>!Yii::app()->admin->isGuest),// rememberMe needs to be a booleanarray('rememberMe', 'boolean'),// password needs to be authenticatedarray('password', 'authenticate'),);}/*** Declares attribute labels.*/public function attributeLabels(){return array('rememberMe'=>'下次記住我','verifyCode' =>'驗(yàn)證碼');}/*** Authenticates the password.* This is the 'authenticate' validator as declared in rules().*/public function authenticate($attribute,$params){if(!$this->hasErrors()){$this->_identity=new UserIdentity($this->username,$this->password);if(!$this->_identity->authenticate())$this->addError('password','帳號(hào)或密碼錯(cuò)誤.');}}public function validateVerifyCode($verifyCode){if(strtolower($this->verifyCode) === strtolower($verifyCode)){return true;}else{$this->addError('verifyCode','驗(yàn)證碼錯(cuò)誤.');}}/*** Logs in the user using the given username and password in the model.* @return boolean whether login is successful*/public function login(){if($this->_identity===null){$this->_identity=new UserIdentity($this->username,$this->password);$this->_identity->authenticate();}if($this->_identity->errorCode===UserIdentity::ERROR_NONE){$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 daysYii::app()->user->login($this->_identity,$duration);return true;}else{return false;} }}
4 番目のステップ、検証プロセスを?qū)g裝するために、私が作成したメソッドの 1 つを詳しく見(jiàn)てみましょう。
validateVerifyCode は、コントローラー
public function actionLogin(){$model=new LoginForm;if(isset($_POST['ajax']) && $_POST['ajax']==='login-form'){echo CActiveForm::validate($model);Yii::app()->end();}if(isset($_POST['LoginForm'])){$model->attributes=$_POST['LoginForm'];// validate user input and redirect to the previous page if validif($model->validate() && $model->validateVerifyCode($this->createAction('captcha')->getVerifyCode()) && $model->login()){$this->redirect(CController::createUrl('default/index'));}}$this->render('login',array('model'=>$model));}

ホットAIツール

Undress AI Tool
脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質(zhì)はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質(zhì)はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結(jié)果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Windows 11 で Snipping Tool が機(jī)能しない理由 問(wèn)題の根本原因を理解すると、適切な解決策を見(jiàn)つけるのに役立ちます。 Snipping Tool が正しく動(dòng)作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開(kāi)かなくなります。破損したアプリケーション: 起動(dòng)時(shí)にスニッピング ツールがクラッシュする場(chǎng)合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競(jìng)合する可能性があります。証明書(shū)の有効期限が切れています: アップグレード プロセス中のエラーにより、この問(wèn)題が発生する可能性があります。これらの簡(jiǎn)単な解決策は、ほとんどのユーザーに適しており、特別な技術(shù)知識(shí)は必要ありません。 1. Windows および Microsoft Store アプリを更新する

毎年、Apple が iOS と macOS の新しいメジャー バージョンをリリースする前に、ユーザーは數(shù)か月前にベータ版をダウンロードして最初に體験することができます。同ソフトウェアは一般ユーザーと開(kāi)発者の両方が使用するため、Appleは開(kāi)発者向けベータ版のパブリックベータ版である開(kāi)発者版とパブリック版を両方向けに開(kāi)始した。 iOS の開(kāi)発者バージョンとパブリック バージョンの違いは何ですか?文字通りに言うと、開(kāi)発者バージョンは開(kāi)発者テスト バージョンであり、パブリック バージョンは公開(kāi)テスト バージョンです。開(kāi)発者バージョンとパブリック バージョンは、異なるユーザーを?qū)澫螭趣筏皮い蓼?。開(kāi)発者バージョンは、Apple が開(kāi)発者によるテストのために使用します。ダウンロードしてアップグレードするには、Apple 開(kāi)発者アカウントが必要です。

タイトル: Array.Sort 関數(shù)を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構(gòu)造であり、多くの場(chǎng)合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡(jiǎn)単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関數(shù)を使用して配列を並べ替える方法を示し、具體的なコード例を示します。まず、Array.Sort 関數(shù)の基本的な使用法を理解する必要があります。 Array.So

PHP でプログラミングする場(chǎng)合、多くの場(chǎng)合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関數(shù)が用意されていますが、配列內(nèi)に同じキーが存在する場(chǎng)合、この関數(shù)は元の値を上書(shū)きします。この問(wèn)題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関數(shù)を言語(yǔ)で提供し、プログラム設(shè)計(jì)をより柔軟にします。配列マージ

PHP には、配列操作をより便利かつ高速にする強(qiáng)力な配列関數(shù)が多數(shù)あります。 2 つの配列を結(jié)合して連想配列にする必要がある場(chǎng)合、PHP の array_combine 関數(shù)を使用してこの操作を?qū)g行できます。この関數(shù)は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結(jié)合するために使用されます。次に、PHP の array_combine 関數(shù)を使用して 2 つの配列を結(jié)合して連想配列にする方法を説明します。 array_comb について學(xué)ぶ

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認(rèn)する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問(wèn)題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動(dòng)作しているかどうかを確認(rèn)してください。問(wèn)題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認(rèn)します?!窤ppStore に接続できません」問(wèn)題は接続不良が原因である場(chǎng)合があるため、安定したインターネット接続があることを確認(rèn)してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設(shè)定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設(shè)定のリセット] > [設(shè)定])。 iOS バージョンを更新します。

php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出而不是在空白頁(yè)彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁(yè)彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code
