Backend Development
PHP Tutorial
How to use Captcha verification code in Yii, yiicaptcha verification code_PHP tutorial
How to use Captcha verification code in Yii, yiicaptcha verification code_PHP tutorial
How Yii uses Captcha verification code, yiicaptcha verification code
The example in this article describes how Yii uses Captcha verification code. Share it with everyone for your reference, the details are as follows:
For detailed code, please refer to: Yii’s own sample code post project, which contains a contact form that uses a verification code.
1. Model:
Add the verification code to an attribute of UserLogin:
class UserLogin extends CFormModel
{
public $username;
public $password;
public $rememberMe;
public $verifyCode;
public function rules()
{
return array(
// username and password are required
array('username, password,verifyCode', 'required'),
// rememberMe needs to be a boolean
array('rememberMe', 'boolean'),
// password needs to be authenticated
array('password', 'authenticate'),
// verifyCode needs to be entered correctly
array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
);
}
/**
* Declares attribute labels.
*/
public function attributeLabels()
{
return array(
'rememberMe'=>Yii::t('user',"Remember me next time"),
'username'=>Yii::t('user',"username or email"),
'password'=>Yii::t('user',"password"),
'verifyCode'=>Yii::t('user','Verification Code'),
);
}
}
2. Controller
Add mapping action CCaptchaAction to the LoginController controller
public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xf4f4f4,
'padding'=>0,
'height'=>30,
'maxLength'=>4,
),
);
}
ublic function actionLogin()
{
if (Yii::app()->user->isGuest) {
$model=new UserLogin;
// collect user input data
if(isset($_POST['UserLogin']))
{
$model->attributes=$_POST['UserLogin'];
//在此核对验证码
if($this->createAction('captcha')->validate($model->verifyCode, false))
{
// validate user input and redirect to previous page if valid
if($model->validate()) {
//admin login only
if( Yii::app()->getModule('user')->isAdmin()==1 )
{
$this->lastViset();
if (strpos(Yii::app()->user->returnUrl,'/index.php')!==false)
$this->redirect(Yii::app()->controller->module->returnUrl);
else
$this->redirect(Yii::app()->user->returnUrl);
}else
{//if no admin when login out
$this->redirect(Yii::app()->controller->module->logoutUrl);
}
}
}else
{//提示错误
$model->addError('verifyCode','验证码不对');
}
}
// display the login form
$this->render('/user/login',array('model'=>$model));
} else
$this->redirect(Yii::app()->controller->module->returnUrl);
}
Before verifying the username and password, check the verification code:
if($this->createAction('captcha')->validate($model->verifyCode, false))
{
3. view
Show the verification code image in the view and input box
<?php $this->widget('CCaptcha'); ?>
<?php echo CHtml::activeTextField($model,'verifyCode',array('tabindex'=>1)); ?>
<img src="http://www.XXXX.net/uploads/123456.jpg" alt="">
I hope this article will be helpful to everyone’s PHP program design based on the Yii framework.
Articles you may be interested in:
- yii user registration form verification example
- Comprehensive form verification rules of PHP Yii framework
- Yii framework form form usage Example
- Yii's form generator usage example that does not rely on Model
- Yii framework form model usage and submitting form data in the form of array example
- Implementing front and backend login processing in Yii New method
- yii method to remove asterisks in required fields
Hot AI Tools
Undress AI Tool
Undress images for free
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undresser.AI Undress
AI-powered app for creating realistic nude photos
ArtGPT
AI image generator for creative art from text prompts.
Stock Market GPT
AI powered investment research for smarter decisions
Hot Article
Popular tool
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
20519
7
13631
4
How to handle file uploads in Yii
Sep 01, 2025 am 01:32 AM
Answer: To handle file upload in Yii, you need to set the form enctype to multipart/form-data, use the UploadedFile class to get the file, verify the file type through the model verification rules, and save the file in the controller. Make sure that the upload directory can be written and renamed for security.
How to handle database transactions in Yii
Sep 02, 2025 am 01:46 AM
Yiiensuresdataintegritythroughtransactionmanagement,allowingrollbackonfailure.UsebeginTransaction()formanualcontrolortransaction()withaclosureforautomaticcommit/rollback.ActiveRecordmodelsautomaticallyparticipateintransactionswhenusingthesameconnecti
How to reset a user password in Yii
Sep 01, 2025 am 12:13 AM
Answer: To implement password reset in Yii2, you need to add password_reset_token and expiration time fields, generate a unique token and send it to the user's mailbox, and allow the user to set a new password by verifying the validity of the token, and finally clean the expired token. The specific steps include: 1. Modify the database to add token fields; 2. Implement the generatePasswordResetToken method in the User model to generate a time stamped token and set an hour validity period; 3. Create a PasswordResetRequestForm form to process the request, find the user and send an email with a reset link; 4. Define the strength of the ResetPasswordForm model to verify the new password
How to implement search and filtering in Yii?
Sep 21, 2025 am 02:33 AM
Answer: To implement search and filtering in Yii2, you need to create a search model and use ActiveDataProvider and GridView. First, create a ProductSearch class for Product, define rules and implement search methods, process parameters through load and validate, and add conditions with andFilterWhere; instantiate the search model in the controller and pass in the request parameters; build a search form in the view with ActiveForm, GridView displays data and sets filterModel; supports advanced functions such as date range and association query to ensure database index optimization performance.
How to create a custom widget in Yii
Aug 30, 2025 am 12:01 AM
To create a custom widget, you need to inherit the yii\base\Widget class and implement the init() and run() methods. 2. Place the class file in the @app/widgets/ directory. 3. Use it in the view through widget() or begin() and end() syntax. 4. Complex output can render the view template through render() method. 5. Create resource packages when CSS/JS is required and register in run().
How to use Gii for code generation in Yii
Aug 31, 2025 am 06:56 AM
EnableGiiinconfig/web.phpbyaddingthemoduleandsettingallowedIPs,thenaccesshttp://your-app-url/index.php?r=gii,useModelGeneratortocreatemodelsfromdatabasetables,anduseCRUDGeneratortogeneratecontrollersandviewsforfullCRUDoperations.
How to handle AJAX requests in Yii
Sep 04, 2025 am 02:53 AM
YiisimplifiesAJAXhandlingbyprovidingtoolstodetectAJAXrequests,returnJSONresponses,andmanageCSRFprotection.InYii2,useYii::$app->request->isAjaxtodetectAJAXcallsandsetresponse->format=Response::FORMAT_JSONforautomaticJSONencoding.Yii1usesYii::
How to implement lazy loading in Yii Active Record?
Sep 15, 2025 am 12:04 AM
LazyloadinginYiiActiveRecordautomaticallyfetchesrelateddatawhenaccessed,notduringinitialmodelload.DefinedviahasOne()orhasMany(),relationstriggeradatabasequeryonfirstaccess,asin$order->customer,whichretrievesthecustomeronlywhenneeded.Thiskeepsiniti





