Zend - Güvenlik Sorgulama garip bir sorun - ama beklendiği gibi çalışmıyor

0 Cevap php

Ben garip bir sorun biraz var. Ben Zend dışarı test ve forma reCaptcha alanı eklemek için gerekli duyuyorum. Ben bu (alışmak) işe yaramadı Zend belgelerinde verilen örnek izledi. 'Yanlış captcha-Sol' hatası başlamıştı.

Etrafında bir süre okuduktan sonra nihayet işe başardı. Ancak isValid yöntem beklediğiniz ne tersini dönen gibi görünüyor.

İşte kod:

Form:

class Application_Form_Album extends Zend_Form {

public function init() {


    ## Set Recapture


    $this->setName('album');
    $this->setMethod('POST');
    $id = new Zend_Form_Element_Hidden('id');
    $id->addFilter('Int');
    $artist = new Zend_Form_Element_Text('artist');
    $artist->setLabel('Artist')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
    $title = new Zend_Form_Element_Text('title');
    $title->setLabel('Title')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addValidator('NotEmpty');
    $submit = new Zend_Form_Element_Submit('submit');
    $submit->setAttrib('id', 'submitbutton');


    //Change theme
    $recaptcha = new Zend_Service_ReCaptcha("XXXXXXX","XXXXXXX");
    $recaptcha->setOption('theme', 'clean');
    $captcha = new Zend_Form_Element_Captcha('challenge', array('captcha' => 'ReCaptcha','captchaOptions' => array('captcha' => 'ReCaptcha','service' => $recaptcha)));



    $this->addElements(array($id, $artist, $title, $captcha, $submit));
}

}

Ve Kontrol yöntemi:

    public function addAction()
{



    $auth = Zend_Auth::getInstance();
    if ($auth->hasIdentity()) {
        $form = new Application_Form_Album();
        $form->submit->setLabel('Add');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {

                $formData = $this->getRequest()->getPost();
                if ($form->isValid($formData)) {

                    $captcha = new Zend_Service_ReCaptcha("XXXXXXX","XXXXXXX");
                    $result = $captcha->verify($this->_getParam('recaptcha_challenge_field'),
                                                 $this->_getParam('recaptcha_response_field'));

                    if ($result->isValid()) {
                        //ReCaptcha validation error
                        #echo "CAPTCHA FAILED!<br>";

                    } else {
                        $artist = $form->getValue('artist');
                        $title = $form->getValue('title');
                        $albums = new Application_Model_DbTable_Albums();
                        $albums->addAlbum($artist, $title);
                        $this->_helper->redirector('index');
                    }


                } else {
                    $form->populate($formData);
                }
       }
    } else {
        $this->_helper->redirector('index','auth');
    }

}

Ben girilmesini geçerli bir CAPTCHA TRUE dönmek için ($ result-> isValid ()) kabul olurdu. Bazı saç çekerek sonra ben $ result-> isValid () dönen düşündüm YANLIŞ yanlış kelime veya kelime girilmiş CAPTCHA başarıyla girdi ve DOĞRU ne zaman?

Ben bir şey eksik? Bu oluyor olabilir neden herkes biliyor musun?

0 Cevap