我正在使用“wForm”扩展表单。我想在我的表单中添加“captcha”。 我为“cForm”尝试了“myCaptcha”组件。 http://www.yiiframework.com/wiki/733/how-to-show-a-captcha-in-cform/ 但我收到以下错误
“WForm”及其行为没有名为“MyCaptcha”的方法或闭包。
我如何使用“wForm中的cform验证码”?
答案 0 :(得分:1)
下载扩展程序cCaptcha extension
1)将CaptchaExtended.zip文件解压缩到../ protected / extensions / captchaExtended /.
2)注册CaptchaExtendedAction和CaptchaExtendedValidator的类路径,例如在components / controller.php中:
public function init(){
// register class paths for extension captcha extended
Yii::$classMap = array_merge( Yii::$classMap, array(
'CaptchaExtendedAction' => Yii::getPathOfAlias('ext.captchaExtended').DIRECTORY_SEPARATOR.'CaptchaExtendedAction.php',
'CaptchaExtendedValidator' => Yii::getPathOfAlias('ext.captchaExtended').DIRECTORY_SEPARATOR.'CaptchaExtendedValidator.php'
));
}
3)在控制器中定义动作,例如SiteController:
public function actions(){
return array(
'captcha'=>array(
'class'=>'CaptchaExtendedAction',
// if needed, modify settings
'mode'=>CaptchaExtendedAction::MODE_MATH,
),
);
}
4)在model :: rules()中定义客户端验证:
public function rules(){
return array(
array('verifyCode', 'CaptchaExtendedValidator', 'allowEmpty'=>!CCaptcha::checkRequirements()),
);
}
5)在视图文件中添加以下内容(在表单中)
$this->widget('CCaptcha'); //for captch image
echo CHtml::activeTextField($model,'verifyCode'); //text field to enter captcha text