加载中...

YII- FRAMEWORK- 中验证码的使用


1.控制器操作:重写CController::actions()并且注册一个继承于CCaptchaAction类ID为‘captcha’的方法。
  1. //验证码方法
  2. public function actions()
  3. {
  4. return array(
  5. // captcha action renders the CAPTCHA image displayed on the contact page
  6. 'captcha'=>array(
  7. 'class'=>'CCaptchaAction',
  8. 'backColor'=>0xFFFFFF, //背景颜色
  9. 'minLength'=>4, //最短为4位
  10. 'maxLength'=>4, //是长为4位
  11. 'transparent'=>true, //显示为透明
  12. ),
  13. );
  14. }
2.控制器操作:增加控制器操作权限。
  1. //定义操作权限
  2. public function accessRules()
  3. {
  4. return array(
  5. array('allow', // 所有用户有操作权限:index,view,captcha
  6. 'actions'=>array('index','view','captcha'),
  7. 'users'=>array('*'),
  8. ),
  9. array('allow', // 仅登录用户有权限操作:create,update
  10. 'actions'=>array('create','update'),
  11. 'users'=>array('@'),
  12. ),
  13. array('allow', // 指定用户有权限操作:admin,delete
  14. 'actions'=>array('admin','delete'),
  15. 'users'=>array('admin'),
  16. ),
  17. array('deny', // 禁止所有用户操作
  18. 'users'=>array('*'),
  19. ),
  20. );
  21. }

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

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


还没有评论.