【问题标题】:How to add captcha in yii wform如何在 yii wform 中添加验证码
【发布时间】:2016-06-09 15:18:35
【问题描述】:

我正在为表单使用“wForm”扩展名。我想在我的表单中添加“验证码”。 我已经为“cForm”尝试了“myCaptcha”组件。 http://www.yiiframework.com/wiki/733/how-to-show-a-captcha-in-cform/ 但我收到以下错误

“WForm”及其行为没有名为“MyCaptcha”的方法或闭包。

如何在 wForm 中使用“cform 验证码”?

【问题讨论】:

    标签: php yii captcha


    【解决方案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) 在控制器中定义动作,例如站点控制器:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      相关资源
      最近更新 更多