YII- FRAMEWORK- 中验证码的使用

来源:互联网 发布:python urllib 编辑:程序博客网 时间:2024/06/11 23:05
1.控制器操作:重写CController::actions()并且注册一个继承于CCaptchaAction类ID为‘captcha’的方法。
//验证码方法public function actions(){return array(// captcha action renders the CAPTCHA image displayed on the contact page'captcha'=>array('class'=>'CCaptchaAction','backColor'=>0xFFFFFF,  //背景颜色  'minLength'=>4,  //最短为4位  'maxLength'=>4,   //是长为4位  'transparent'=>true,  //显示为透明 ),);}
2.控制器操作:增加控制器操作权限。
//定义操作权限public function accessRules(){return array(array('allow',  // 所有用户有操作权限:index,view,captcha'actions'=>array('index','view','captcha'),'users'=>array('*'),),array('allow', // 仅登录用户有权限操作:create,update'actions'=>array('create','update'),'users'=>array('@'),),array('allow', // 指定用户有权限操作:admin,delete'actions'=>array('admin','delete'),'users'=>array('admin'),),array('deny',  // 禁止所有用户操作'users'=>array('*'),),);}

3.数据模型操作:声明一个变量用于存储用户输入的验证码

public $verifyCode; 
4.数据模型操作:用’captcha‘验证,验证码变量。
public function rules(){return array(array('type, status', 'numerical', 'integerOnly'=>true),array('title,content,user','required'),array('title', 'length', 'max'=>20, 'min'=>5),  array('content', 'length', 'max'=>50000),array('user', 'length', 'max'=>20),array('create_data', 'safe'),array('verifyCode','captcha'),);}
5.视图表单_form:插入一个CCaptcha组件
<?php if(CCaptcha::checkRequirements()): ?>  <div class="row">  <?php echo $form->labelEx($model,'verifyCode'); ?>  <div>  <?php $this->widget('CCaptcha'); ?>  <?php echo $form->textField($model,'verifyCode'); ?>  </div>  <div class="hint">请输入上图看到的验证码。<br/>字母不区分大小写。</div>  <?php echo $form->error($model,'verifyCode'); ?>  </div>  <?php endif; ?>