On Tue, Jan 27, 2009 at 3:24 PM, Deepak Shrestha <[email protected]> wrote:
> Hi,
>
> Didn't get any help from my last post so I went through documentation
> and tried to understand as much I can but can't find a way to display
> captcha image in Zend_Form using default behavior of Zend Framework's
> MVC. AFAIK (with my current knowledge), my code is correct.
>
> This is the code snippet in  my [application/forms/myform.php]
> ===============================================
>
>        //first create an image type captcha
>        $captchaimg = New Zend_Captcha_Image('captchaimg');
>        $captchaimg->setFont("../application/captcha/fonts/tahoma.ttf");
>        $captchaimg->setImgDir("../application/captcha/images");
>        $captchaimg->setImgUrl("../application/captcha/images");
>        $captchaimg->setWordlen('6');
>
>        //create user input for captcha and include the captchaimg in form
>        $adcaptcha = New Zend_Form_Element_Captcha('adcaptcha', array(
>            'captcha' => $captchaimg));
>        $adcaptcha->setLabel('Please enter the 5 letters displayed below:');
>        $adcaptcha->setRequired(true);
>        $adcaptcha->addErrorMessage('Entered value did not match with
> displayed image.');
>
> $this->addElements( array(....$adcaptcha));
> =================================================
>
> My view script:
> ================
> <?= $this->form ?>
> ================
>
>
> dirctory structure for captcha image is:
> =============================
> application
>    - captcha
>        - fonts
>        - images (for genreated images)
> =============================
>
>
> My Observation
> ===============
> 1. There is no captcha image when form renders. However, I can see
> image being generated in 'application/captcha/images' folder.
>
> 2. Trying to post the empty form (expecting that my custom error
> message will be displayed) gives me empty error message string with
> just a round bullet list in the captcha section but other text input
> fields show the correct error messages.
>
> 3. Using view source in the browser, i got this about captcha
>
> *********************************************
> <dd>
> <img alt="" 
> src="../application/captcha/images/641aa987b887cbefb441f33e194a45b9.png"/><br/>
> <input type="hidden" name="adcaptcha[id]"
> value="641aa987b887cbefb441f33e194a45b9" helper="formText"
> id="adcaptcha-id" />
> <input type="text" name="adcaptcha[input]" id="adcaptcha-input"
> value="" helper="formText" /></dd>
>
> **********************************************
> ===============
>
>
> My Questions:
> ================
> 1. The image url was passed to the brower but why it didn't get
> rendered in the form?
> 2. Is this the bug or feature? If it is the feature, how do I make the
> image appear in my form using the code I have posted above? what are
> the additional things I need to consider?
> ================
>
>
> Partial answer (best guess) to my own question:
> ====================================
> 1. Probably form is forgetting to call some default rendering function
> of Zend_Captcha to render it (or ???).  However custom approach (with
> custom form) as shown in zend documentation
> [http://framework.zend.com/manual/en/zend.captcha.operation.html] and
> the one I found in recent blog [http://www.tfountain.co.uk/] works
> because it explicitly calls "echo $captcha->render($view);" method.
> ====================================
>
>
> But I want to stick with ZF's default MVC behaviors and want to
> understand how these pieces fit together before I can understand and
> do customized stuffs. So I need to show the captcha image suing zend
> form.
>
> Can somebody guide me about whether it is bug/feature? and any workaround?
>
> Thanks a lot



Sorry I forgot to mention that I am using current version of ZF 1.7

Thanks


-- 
=======================
Registered Linux User #460714
Currently Using Fedora 8, 10
=======================

Reply via email to