6

Yii ウィジェット CCaptcha を使用してキャプチャ画像を表示しようとしているユーザー登録フォームがありますが、画像リンクが壊れているように見えます。コントローラ ファイル:

public function actions()
    {
        return array(
            // captcha action renders the CAPTCHA image displayed on the contact page
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                'backColor'=>0xFFFFFF,
            ),
        );
    } 

モデル ファイル:

public function rules()
 {
    return array( array('verifyCode','captcha','allowEmpty'=>!CCaptcha::checkRequirements(),'on'=>'insert'), 
);
}

そしてファイルを表示します:

<?php if(CCaptcha::checkRequirements()): ?>
    <div class="row">
        <?php echo $form->labelEx($model,'verifyCode'); ?>
        <div>
        <?php $this->widget('CCaptcha'); ?>
        <?php echo $form->textField($model,'verifyCode'); ?>
        </div>
        <div class="hint">Please enter the letters as shown.
        <br/>Letters are not case-sensitive.</div>
        <?php echo $form->error($model,'verifyCode'); ?>
    </div>
    <?php endif; ?>

どこかで提供された回答として、コントローラーファイルにアクセスルールを次のように指定しようとしました

public function accessRules()
{
    return array(
        array('allow',
         'actions' => array('captcha'), 
         'users' => array('*'),
         ),
    );
}

しかし、何も機能していないようです。

4

2 に答える 2

8

問題はコントローラーファイルにありました。

public function accessRules()
    {
        return array(
            array('allow', 
                'actions'=>array('create', 'captcha'),
                'users'=>array('*'),
            ),
    } 


最後にキャプチャのアクションについて言及しましたが、これは Yii では許可されていないことがわかりました。* の許可アクションはすべて一緒にする必要があります。

于 2012-08-15T15:08:10.340 に答える
-1

Yii captcha は png 画像を作成します。破損した画像リンクの原因として考えられるのは、GD 拡張機能または imagick 拡張機能の欠落ですerror.log

未定義関数 imagecreatetruecolor の呼び出し

詳細と修正については、PHP & pChart の「未定義関数 imagecreatetruecolor の呼び出し」エラーを参照してください。

于 2016-04-26T07:57:20.353 に答える