2016-06-01 3 views
1

양식에 "wForm"확장자를 사용하고 있습니다. 내 양식에 "captcha"를 추가하고 싶습니다. "cForm"에 대해 "myCaptcha"구성 요소를 사용해 보았습니다. http://www.yiiframework.com/wiki/733/how-to-show-a-captcha-in-cform/ 하지만 난 "MyCaptcha"라는 이름의 방법 또는 폐쇄가없는 다음과 같은 오류yii wform에 captcha를 추가하는 방법

"WForm"과 그 행동을 얻고있다.

어떻게 "wForm의 cform captcha"를 사용할 수 있습니까?

답변

1

다운로드 확장 cCaptcha extension

1) ../protected/extensions/captchaExtended/에 압축을 풉니 다 CaptchaExtended.zip 파일.

2) CaptchaExtendedAction 및 CaptchaExtendedValidator에 클래스 경로를 등록하십시오. in 구성 요소/컨트롤러 .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) (모델 : 규칙에 클라이언트 유효성 검사를 정의) :

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