我正在尝试在我的注册页面上显示验证码,但由于某种原因它不会显示。我正在使用YiiSkeletonApp
在我看来
echo $form->captchaRow($model,'verify',array('class' => 'input-block-level',
'hint'=>'<i class="muted">Letters are not case-sensitive.</i>',
));
在我的 models / user.php 中,我有这个
public function rules() {
return array(
array('verify', 'captcha', 'allowEmpty' => !CCaptcha::checkRequirements(), 'on' => 'register, forgotPassword'),
);
和我的 controllers / UserController.php
public function accessRules() {
return array(
// Actions: index, create, update, password, newPassword, forgotPassword, delete
array('allow',
'actions' => array('captcha', 'create', 'forgotPassword', 'newPassword'),
'expression' => 'app()->user->isGuest()',
),
array('allow',
'actions' => array('password', 'update'),
'users' => array('@'),
),
array('allow',
'actions' => array('index', 'create', 'register', 'delete'),
'expression' => 'app()->user->isAdmin()',
),
array('deny',
'users' => array('*'),
),
);
}
答案 0 :(得分:1)
CCaptcha
要求安装gd extension。如果不存在,验证码将不会显示。
答案 1 :(得分:0)
在您的控制器中,在操作中定义它:
public function actions()
{
return array(
// captcha action renders the CAPTCHA image displayed on the contact page
'captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
),
);
}
现在应该可以了。