2012-08-10 18 views
6

Ho un modulo di registrazione utente, in cui sto cercando di visualizzare un'immagine Captcha utilizzando Yii widget di CCaptcha, tuttavia il mio link immagine appare rotto, file di controller:
CCaptcha visualizzazione senza Yii immagine

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

File Modello:

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

E vista del file:

<?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; ?> 

Come risposta fornita da qualche parte ho anche provato dando le regole di accesso in mio file controller come

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

Ma nulla sembra funzionare.

+0

Ho testato il tuo codice e non ci sono stati errori! Aggiungo solo 'on' => 'insert' ma è apparso l'immagine del captcha! – SoldierCorp

+0

Ho scritto 'on' => 'insert' anche nella mia classe modello. ma senza fortuna lì. Lo strumento yiic ha generato il captcha dell'app visibile, il che significa che c'è qualcosa, mi manca o non si scrive correttamente. –

risposta

8

il problema era con il file di controllo, che avrebbe dovuto essere,

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


mentre io avevo menzionato l'azione per captcha, alla fine, che ho capito non è consentito in Yii. Tutte le azioni di autorizzazione per * dovrebbero essere insieme.

-1

Yii captcha creerà un'immagine png. Una possibile spiegazione per l'immagine link interrotto sarebbe un'estensione GD mancante o estensione imagick, che può essere identificato dalla presenza del seguente testo nel vostro error.log:

chiamata alla funzione non definita imagecreatetruecolor

Per dettagli e correzione vedi "call to undefined function imagecreatetruecolor" error in PHP & pChart

Problemi correlati