For some reason it seems the Zend_Captcha component is creating two images
instead of one because it is seeing two session ids. I dont know why this is
so or where the other is coming from

On running print_r($captcha->getSession(), only one session echoes out. So i
wonder where the second is coming from and i dont have any persistent
session active.

I have found a solution to the validation - though i dont think it is ideal
but i need to get this working.

On generation of the captcha image i sent to the word to the view to a
hidden field. On form submisssion i simply check the entered text with that
of the generated captcha word from the hidden field for sameness. if same
then the user has entered the right text.




Thanks for the code. Am not using Zend_Form for my forms. Am using plain
html. I just didnt find it flexible enough for views such as floating three
drop downs side by side and etc. It was taking too much of my time trying to
make my view display as intended.

Thanks for the code anyway.


dele454 wrote:
> 
> Thanks for the code. Am not using Zend_Form for my forms. Am using plain
> html. I just didnt find it flexible enough for views such as floating
> three drop downs side by side and etc. It was taking too much of my time
> trying to make my view display as intended.
> 
> Thanks for the code anyway.
> 
> 
> 
> vRandom wrote:
>> 
>> 
>> I found this example code in one of the bug reports ...
>> (http://framework.zend.com/issues/browse/ZF-4045)
>> 
>> Works good enough to get an idea of how to put the captcha to use. (as
>> there
>> is limited documentation examples)
>> 
>> I didn't see one of these Zend_Form_Element_Captcha in your code, maybe
>> it
>> is what you need.
>> 
>> Slightly modified for quick test...
>> 
>> Try something like this : 
>> 
>>      // (fix pathing for your dev setup)
>>      // setup for captcha image
>> 
>>        $captchaImage = new Zend_Captcha_Image();
>>         $captchaImage->setFont(DATAPATH.'/VeraBd.ttf');
>>         $captchaImage->setFontSize(30);
>>         $captchaImage->setWordlen(6);
>>         $captchaImage->setImgDir(CAPTCHAPATH);
>>         $captchaImage->setImgUrl('/images/captcha/');
>>         $captchaImage->setWidth(175);
>>         $captchaImage->setHeight(75);
>>         $captchaImage->setName('captcha');
>> 
>>      // text box for user input
>>         $elementCaptcha = new Zend_Form_Element_Captcha(
>>             'captcha', array('captcha' => $captchaImage)
>>         );
>> 
>>      // make form
>>         $form = new Zend_Form(array(
>>             'action' => '/manage/',
>>             'method' => 'post',
>>         ));
>> 
>>      // add items to form
>>         $form->addElement($elementCaptcha, 'captcha')
>>             ->addElement('submit', 'process', array(
>>                 'required' => false,
>>                 'ignore'   => true,
>>                 'label'    => 'Process',
>>             ));
>> 
>>      // set image to view
>>         $this->view->captcha = $captchaImage;
>> 
>>      // check if form post
>>         $request = $this->getRequest();
>>         if (!$request->isPost()) {
>>              // if not show form
>>             $this->view->form = $form;      
>>         }
>> 
>>      // test form valid?
>>         if (!$form->isValid($request->getPost())) {
>>              // if not show form
>>             $this->view->form = $form;
>>         }
>> 
>>      
>>      // this was originally in the view script
>>      // but I didn't want to wack my existing so
>>      // modified it to work here
>> 
>>      // if we have form, show it - or form did validate
>>         if (isset($this->view->form)) {
>>              echo '<h2>Testing Captcha</h2>';
>>              echo $this->view->form;
>>          } else {
>>              echo '<h2>Captcha Form validated!</h2>';
>>          }
>> 
>>      // dump the capcha data
>>         if (isset($this->view->captcha)) {
>>              echo '<h4>Captcha word dump</h4>';
>>              echo '<pre>'.
>> var_dump($this->view->captcha->getWord()).'</pre>';
>>         } 
>> 
>> 
>> 
>> -----Original Message-----
>> From: dele454 [mailto:[EMAIL PROTECTED] 
>> Sent: Tuesday, November 04, 2008 5:19 AM
>> To: fw-general@lists.zend.com
>> Subject: Re: [fw-general] Zend_Capcha
>> 
>> 
>> Any one out there with help? Please!!
>> 
>> dele454 wrote:
>>> 
>>> hi,
>>> 
>>> i am trying to verify the text submitted to match that of the captcha. 
>>> If
>>> valid(same) echo 'validated'.
>>> 
>>> class JoinController extends Zend_Controller_Action {
>>> 
>>>             public function indexAction(){
>>>             
>>>             $this->_helper->layout->setLayout('layout-site');
>>>             $view = new Zend_View();                
>>>             // Originating request:
>>>             $captcha = new Zend_Captcha_Image(array(
>>>                     'name' => 'foo',
>>>                     'height' => 100,
>>>                     'width' => 202,
>>>                     'wordLen'=> '6',
>>>                     'expiration' => '300',
>>>                     'font' =>
>>> 'C:/xampp/htdocs/xampp/mainevent/public_html/img/font/ravie.ttf',
>>>
>> 'imgDir'=>'C:/xampp/htdocs/xampp/mainevent/public_html/img/captcha',
>>>                     'imgUrl' => '../img/captcha',
>>>                     'fontSize' => '24',
>>>                     
>>>                     
>>>                     
>>>             ));
>>>             $id = $captcha->generate();
>>>             $this->view->showCaptcha = $captcha->render($view);
>>>             
>>>             
>>>             
>>>             if ($captcha->isValid($_POST['captcha'])) {
>>>                    echo "Validated!";
>>>               
>>>                  }
>>>              else{ echo "no";
>>>              print_r($captcha->getMessages());}
>>>             }       
>>>      
>>>             
>>> 
>>> }
>>> 
>>> When i submit the form it always echos 'no'!. Printing the error 
>>> message i get this
>>> 
>>> Array ( [missingValue] => Empty captcha value )
>>> 
>>> How can i sort this out. I am thinking the captcha will always have a 
>>> different value on post when compared to the text field. How can i 
>>> resolve this.
>>> 
>> 
>> 
>> -----
>> dee
>> --
>> View this message in context:
>> http://www.nabble.com/Zend_Capcha-tp20300142p20319514.html
>> Sent from the Zend Framework mailing list archive at Nabble.com.
>> 
>> 
>> 
>> 
> 
> 


-----
dee
-- 
View this message in context: 
http://www.nabble.com/Zend_Captcha-tp20300142p20349490.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to