Yii Framework Captcha与beforeAction()函数冲突

时间:2013-05-03 20:18:18

标签: yii

我在Yii有应用程序,我从一些基本控制器扩展所有类,我有这些代码:

protected function beforeAction($action)
    {
        $this->setglobalvariable();
        return parent::beforeAction($action);
    }

正如我所理解的,这些代码阻止了Captcha显示,因为当我删除它时,验证码显示出来!验证码功能是:

public function actions()
    {
        return array(
            // captcha action renders the CAPTCHA image displayed on the contact page
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=>0xFFFFFF,
                'minLength'=>2,
                'maxLength'=>3,
                'width'=>60,
            ),
            // page action renders "static" pages stored under 'protected/views/site/pages'
            // They can be accessed via: index.php?r=site/page&view=FileName
            'page'=>array(
                'class'=>'CViewAction',
            ),
        );
    }

那我怎么能同时使用beforeAction和captcha呢?

3 个答案:

答案 0 :(得分:2)

冲突在你的结构中,向我们展示更多代码。将程序放在新鲜的yii中并进行测试。

答案 1 :(得分:1)

beforeAction函数,与其他Yii方法或函数没有任何冲突。

问题在你的代码中。

答案 2 :(得分:0)

显然, Controller :: setglobalvariables()方法中的一些代码与验证码的代码冲突。

CCaptachAction :: run()方法使用 $ _ GET 参数。你是否以某种方式重置$ _GET?

你能告诉我们代码吗?