0

Yii Web サイトからダウンロードした Yii Framework demo-blog-contact の正確なコードを、同じバージョンのライブラリを持つ他の yii アプリケーションにコピーする方法を知りたいのですが、キャプチャは表示されません。

コントローラー/アクションページに移動すると、キャプチャの代わりに壊れたリンクが表示され、新しいページで壊れたリンクの画像を開くと、別の壊れたリンクが表示されます。

CCaptchaの一般的な問題についてこのリンクを見ました。gdライブラリが稼働中であることを 確認しました。リンクとまったく同じ内容の関数 actions()があり、アプリケーションでアクセス制御フィルターを定義していません。

私はこのリンクを見ましたが、許可の問題はありません。このリンクはありません。

このリンクが言ったのとまったく同じことをしましたが、成功しませんでした。これらのキャプチャを表示するための助けをいただければ幸いです。

コントローラー:

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

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

モデル :

<?php
class ContactsM extends CFormModel {
    public $name;
    public $email;
    public $subject;
    public $body;
    public $verifyCode;

    /**
     * Declares the validation rules.
     */
    public function rules()
    {
        return array(
            // name, email, subject and body are required
            array('name, email, subject, body', 'required'),
            // email has to be a valid email address
            array('email', 'email'),
            // verifyCode needs to be entered correctly
            array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
        );
    }
    public function attributeLabels()
    {
        return array(
            'verifyCode'=>'Verification Code',
        );
    }
    }

意見 :

<?php $form=$this->beginWidget('CActiveForm'); ?>
    <?php echo $form->errorSummary($model); ?>

    <?php if(extension_loaded('gd')): ?>
    <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 they are shown in the image above.
        <br/>Letters are not case-sensitive.</div>
    </div>
    <?php endif; ?>

    <div class="row submit">
        <?php echo CHtml::submitButton('Submit'); ?>
    </div>

<?php $this->endWidget(); ?>
4

2 に答える 2

0

私が理解している事実を共有したい:

私の問題は:

私は継承を使用し、父のクラスにはいくつかの問題があり、息子のクラスはそれを拡張しましたが、エラーは表示されず、正常に動作すると思っていましたが、実際にはそうではありませんでした。ケースは CCaptcha でした。

于 2013-04-14T14:17:51.167 に答える