加载中...

YII- FRAMEWORK- 中验证码的使用


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; ?>


还没有评论.