xiaokinder 2012-09-01 12:23:37 6854次浏览 5条回复 0 0 0

控制器

public function actions()
{
    return array(
        'captcha'=>array(
            'class'=>'CCaptchaAction',
            'backColor'=>'0xFFFFFF',
        ),
    );
}

model类

public $username;
	public $password;
	public $code;
	public $verifyCode; 
	
public function rules()
{
	return array(
		array('username, password, verifyCode', 'required'),
		array('password', 'authenticate'),
		array('verifyCode', 'captcha', 'allowEmpty'=>!extension_loaded('gd')),
	);
}

视图类

<div class="code_l">
    <?php echo $form->textField($model,'verifyCode',array('class'=>'input_code'));?>
</div>
<div class="code_r">
    <?php $this->widget ( 'CCaptcha', array ('showRefreshButton' => false, 'clickableImage' => true, 'buttonType' => 'link', 'imageOptions' => array ('alt' => '点击换图', 'title' => '点击换图', 'style' => 'vertical-align:middle;cursor:pointer;height:26px;width:100px;margin-left:5px;' ) ) );?>
</div>

结果出来了 可以点击刷新 但是出现这个错误 验证码不显示 图像 “http://localhost/Yii/admin.php?r=site/captcha&v=50418e26e1d43” 因其本身有错无法显示。

YII自带的事例是可以显示的 。。搞不明白啊···有高手帮下忙吗

  • 回复于 2012-09-01 14:19 举报

    没有人吗???????????

  • 回复于 2012-09-03 13:58 举报

    如果是404错误的话,你在Controller里面启用了filters的accessControl规则,那么你需要把action写到accessRules里面,并且设为allow。
    比如这样:

    public function accessRules()
    {
    	return array(
    		array('allow',  // allow all users to perform 'index' and 'view' actions
    			'actions'=>array('captcha'),
    			'users'=>array('*'),
    		),
    		array('deny',  // deny all users
    			'users'=>array('*'),
    		),
    	);
    }
    

    如果是500错误的话,说明model里面配置错了吧...

    总之,你仔细分析下代码吧,还有错误提示也认真看下。另外,你的gd应该是可以用的哈?

    觉得很赞
  • 回复于 2012-09-03 15:06 举报

    兄弟 accessRules 这个写在哪个地方 控制器里面?
    GD是可以用的 因为 yii 的blog事例下的是可以使用 是图片不显示 是404错误吧

  • 回复于 2012-09-03 15:57 举报

    如果你当前control设置访问控制的话,可能会出现403禁止访问

  • 回复于 2012-09-03 16:33 举报

    对的,就是controller的那个页面里面。

您需要登录后才可以回复。登录 | 立即注册