Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Captcha slika se ne generiše nakon refresha, Yii framework

[es] :: PHP :: Captcha slika se ne generiše nakon refresha, Yii framework

[ Pregleda: 2136 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Rato iks de
Ratomir Vukadin
Software Engineer
Sarajevo

Član broj: 254175
Poruke: 68
..ppoe.dyn.broadband.blic.net.



+3 Profil

icon Captcha slika se ne generiše nakon refresha, Yii framework23.02.2015. u 23:37 - pre 111 meseci
Već duže vremena se mučim sa refresh-ovanjem captcha slike u Yii framworku. Lutao sam googlom i to dosta. Neki su problem rješavali
tako što su imali uključene dvije jquery biblioteke, međutim ne bi trebalo da je to problem. Firebug uredno pokazuje samo jednu jquery biblioteku.
Ipak nakon svega, sve mi je sumljivo. Koristim YiiBooster komponente yii booster. Možda i on ubacuje svoju neku jquery biblioteku ali ne bih rekao,
firebug opet tu ništa ne registruje.
php_gd2 ekstenizija je aktivan na wamp server. Takođe, korisnik kada unese ispravan ili pogrešan kod dobije poruku o tome.

Na običnom yii projektu koji se dobije instalaciom sve radi. Regeneriše se sličica kako treba.

Kada se refreshuje kompletna stranica učita se nova sličica i to je ok ali samo jednom.

Naravno, pokušao sam da pitam na chatu na oficijalnoj stranici ali ništa. A na njihovom forumu već ima toliko tema o ovome da nema smisla da je pokrećem ponovo
ali eto ništa ne riješava ovaj problem kojem nikako da otkrijem pravi izvor a lako bi se nekako to saniralo.

Što se tiče dijelova koda postaviću ih ovde ali nisu nešto puno pametni.


Code:

contact model

class ContactForm 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()),
        );
    }

    /**
     * Declares customized attribute labels.
     * If not declared here, an attribute would have a label that is
     * the same as its name with the first letter in upper case.
     */
    public function attributeLabels()
    {
        return array(
            'verifyCode'=>'Verification Code',
        );
    }
}



Code:

SITE CONTROLLER samo bitni dijelovi

public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'index' and 'captcha' actions
                  'actions' => array('index', 'login','captcha', 'navigator', 'enrollment'),
                  'users' => array('*'),
            ),
        );
    }

public function actions()
    {
        return array(
            // captcha action renders the CAPTCHA image displayed on the contact page
            'captcha'=>array(
                'class'=>'CCaptchaAction',
                "transparent" => true,
                "foreColor" => 0xFFF,
                "offset" => 5,
                "width" => 200,
                'testLimit' => 2,
                'minLength' => 7,
                'maxLength' => 7,
            ),
            // 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',
            ),
        );
    }

public function actionIndex()
    {
        // renders the view file 'protected/views/site/index.php'
        // using the default layout 'protected/views/layouts/main.php'
        $model=new ContactForm;
        $this->render('site/index', array("model" => $model));
    }



Code:

VIEW 
<?php  if(CCaptcha::checkRequirements()): ?>
    <div class="row">
        <div class="row col-xs-12 col-sm-push-3">
            <?php $this->widget('CCaptcha', array(
                'captchaAction'=>'/site/captcha',
                "clickableImage" => true,
                'buttonType'=>'link',
                "buttonLabel" => "<span class='glyphicon glyphicon-refresh' aria-hidden='true' style='font-size: 3em;'></span>"
            )); ?>
        </div>

        <?php echo $form->textFieldGroup($model,'verifyCode',array('widgetOptions'=>array('htmlOptions'=>array('class'=>'span5')))); ?>
        <div class="row hint col-xs-12 my-text-center">Unesite slova koja su prikazana na slici. Slova mogu biti velika i mala.</div>
    </div>
<?php  endif; ?>



Na kompletnoj ovoj formi gdje se nalazi captcha kod ne radim ajax validaciju.

Ako neko ima neke smjernice šta da pogledam, kuda da dalje tražim, u čemu je srž problema, šta još može da bude. Bilo šta bi mi pomoglo.

Pozdrav. :)
 
Odgovor na temu

[es] :: PHP :: Captcha slika se ne generiše nakon refresha, Yii framework

[ Pregleda: 2136 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.