2013-04-14 3 views
0

Мне просто интересно, как можно скопировать точный код демонстрационного блога Yii Framework, загруженного с сайта Yii в другое приложение yii с той же библиотекой версий, и оно не отображает captcha.Yii captcha picture Неисправна ссылка

Когда я иду на страницу контроллера/действия, он показывает неработающую ссылку, а не captcha, и когда я открываю неработающее изображение ссылки на новой странице, он показывает другую нерабочую ссылку.

Я видел это link для общей проблемы CCaptcha и я проверил Gd библиотеки и работает, и у меня есть функциональных действий() с содержанием точно таким же, как сказала ссылка и я не определите фильтр управления доступом в приложении.

Я видел это link, и у меня нет проблемы с разрешением, и это link, и я не использую его.

Я сделал то же самое, что и этот link сказал, но не удался. любая помощь, чтобы показать эту капчу, будет оценена по достоинству.

Контроллер:

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(); ?> 
+0

В каком классе вы расширили свой контроллер? – 2013-04-14 10:38:47

+0

Я создал базовый контроллер в компоненте, и я расширил его. – 2013-04-14 10:39:30

+0

Проблема этих обучающих программ заключается в том, что «они не отображают все коды». – 2013-04-14 10:58:41

ответ

1

Как я понял из Вашего комментария Вы должны Продлить свой класс контроллера от CController.

+1

Он решает мою проблему, но что мне делать с моим классом базового контроля, от которого я хочу вписаться? – 2013-04-14 10:43:58

+3

Это не должно вызывать никаких проблем для наследования другого контроллера. проверьте свой контроллер на наличие ошибок, пробел в php или другие проблемы. – 2013-04-14 10:49:16

0

Я хочу поделиться тем, я имею понять:

Моя проблема была:

Я использовал уделы и класс отца есть некоторые проблемы, класс сына продлить его, но он не показывает какую-либо ошибку, и я думал, что это работает нормально, но на самом деле это не так, я понимаю это до тех пор, пока я не использовал функцию отца, которая в этом случае была CCaptcha.

Смежные вопросы