//验证码方法 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; ?>