[YII 1][Risolto] Problema visualizzazione Captcha

Salve a tutti,

ho un problema con la visualizzazione dell’ immagine del codice captcha, sia nel form contact (pagina che già esiste in yii), sia in un form che ho creato io.

In locale funzionava tutto, mentre quando ho uppato il tutto sul server non si vede più l’ immagine.

Il test requirements è corretto perchè le librerie GD risultano installate e il test viene superato.

Facendo un test con la console sia di crhome, di mozzilla che di internet explorer, via GET l’ immagine viene inviata, ma se incollo il link sul browser non si vede nulla.

Ho provato anche a installare un’ estensione per il captcha ma mi da lo stesso problema.

Qualcuno ha avuto un problema di questo tipo?

Vi incollo un po di codice in maniera tale da potervi far vedere il tutto.

SiteController:




......................................

public function actions()

	{

return array(

           // captcha action renders the CAPTCHA image displayed on the contact page

            'captcha'=>array(

                'class'=>'CCaptchaAction',

                'backColor'=>0xFFFFFF,

            ),

            // page action renders "static" pages stored under 'protected/views/site/pages'

            // They can be accessed via: index.php?r=site/page&view=FileName

            'page'=>array(

                'class'=>'CViewAction',

            ),

...............................



RecueproPassword (model extend CFormModel)




class RecuperoPassword extends CFormModel{

public $username;

public $email;

public $captcha;

public $password;

public $codice_fiscale;


public function rules(){

	return array(

	array(

	'username, email, captcha, password, codice_fiscale',

	'required',

	'message' => 'Campo obbligatorio',

	),

	

	array(

	'username',

	'match',

	'pattern' => '/^[a-zA-Z0-9]+$/i',

	'message'=>'Inserire solo lettere Maiuscole e Minuscole e Numeri',

	),

	array

	(

	'email',

	'email',

	'message'=>'Formato email NON corretto',

	),

	array(

	'captcha',

	'captcha',

	'message'=>'Secure Code NON corretto',

	          ),  

			  

	array(

	'password',

	'match',

	'pattern' => '/^[a-zA-Z0-9]+$/i',

	'message'=>'Inserire solo lettere Maiuscole e Minuscole e Numeri',

	),

	

	array(

	'codice_fiscale',

	'ValidaCodiceFiscale',

	'message'=>'Inserire solo lettere Maiuscole e Minuscole e Numeri',

	),		  

	    );

	}

..............................



recuperopassword.php (vista)




..................................

<?php 

$form=$this->beginWidget('CActiveForm',

array(

'method'=>'POST',

'action'=> Yii::app()->createUrl('site/RecuperoPassword'),

'enableClientValidation'=>true,

'clientOptions'=>array(

'validateOnSubmit'=>true,

),

));

?>


ALTRO CODICE DEL FORM 


//INPUT CAPTCHA

<tr>

<td class="tabella_info_campo_descrizione">

<?php echo $form->labelEx($model, 'Secure Code');?>

<?php $this->widget('CCaptcha', array('buttonLabel'=>'Rigenera Codice'));

?>

</td>


<td class="tabella_info_campo_data">

<div class="text-info">

Inserisci Secure Code

</div>

<?php echo $form->textField($model, 'captcha');?>


<?php 

echo $form->error($model, 'captcha', array('class'=>'text-error'));

?>

</td>

</tr>

...........................



Allego screen-shot della vista sul browser con console crhome aperta e uno screen-shot del test requirements di yii.

Se qualcuno può aiutarmi a risolvere il problema gliene sarei grato.

Grazie in anticipo e faccio i migliori Auguri per il Nuovo Anno a tutto il forum.

Un Saluto

Ciao,

utilizzi l’advanced template?

Ho avuto lo stesso problema provando ad utilizzare il captcha lato backend.

Se così fosse allora puoi risolvere la problematica semplicemente aggiungendo’captcha’ in /backend/controllers/StiteController::behaviors()




public function behaviors()

    {

        return [

            'access' => [

                'class' => AccessControl::className(),

                'rules' => [

                    [

                        'actions' => ['login', 'error', 'captcha'],

                        'allow' => true,

                    ],

                    [

                        'actions' => ['logout', 'index'],

                        'allow' => true,

                        'roles' => ['@'],

                    ],

                ],

            ],

            'verbs' => [

                'class' => VerbFilter::className(),

                'actions' => [

                    'logout' => ['post'],

                ],

            ],

        ];

    }



e poi aggiungerlo in actions




public function actions()

    {

        return [

            'error' => [

                'class' => 'yii\web\ErrorAction',

            ],

            'captcha' => [

                'class' => 'yii\captcha\CaptchaAction',

                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,

            ],

        ];

    }



Ciao hyde82 e grazie della risposta :)

Purtroppo uso (utilizzo Yii 1 e non Yii 2) il template di base, più un template creato da me…ma non funziona con nessuno dei due template.

La cosa strana e che in locale funzionava tutto. Il server sembra ok, quindi non riesco a capire la problematica!!!

Ti ringrazio cmq del suggerimento e ti Auguro un Felice Anno Nuovo!!!!

Che stronzata pazzesca!!!!! C’ era una riga vuota nel controller Site prima dell’ inizio <?php

Eliminata la riga vuota tutto ha ripreso a funzionare e l’ immagine del captcha funziona benissimo!!! Assurdo…3 gg per risolvere una cag**a come questa!!!

Vabbè se a qualcuno fosse capitata questa cosa…ricontrolli il proprio controller ed elimini la prima riga vuota prima dell’ appertura di <?php in caso ve ne sia una vuota!!!