View Single Post
  #1 (permalink)  
Old 02-26-2008, 11:44 AM
signature signature is offline
Junior Member
 
Join Date: Feb 2008
Posts: 1
Default Captcha is not working

I am trying to make the captcha work with the login form. It works without Zend, doesnt work with Zend.

Here is the controller class:


Code:
class ImagegeneratorController extends Zend_Controller_Action
{
    public function init()
    {
        $this->_helper->viewRenderer->setNoRender();
    }

    public function generatecaptchaAction()
    {

        //Let’s generate a totally random string using md5
        $md5_hash = md5(rand(0,999));
        //We don’t need a 32 character long string so we trim it down to 5
        $security_code = substr($md5_hash, 15, 5);

        $_SESSION[‘captcha_code’] = $security_code;

        //Set the image width and height
        $width = 100;
        $height = 20; 

        //Create the image resource
        $image = ImageCreate($width, $height);  

        //We are making three colors, white, black and gray
        $white = ImageColorAllocate($image, 255, 255, 255);
        $black = ImageColorAllocate($image, 0, 0, 0);
        $grey = ImageColorAllocate($image, 204, 204, 204);

        //Make the background black
        ImageFill($image, 0, 0, $black); 

        //Add randomly generated string in white to the image
        ImageString($image, 3, 30, 3, $security_code, $white); 

        //Throw in some lines to make it a little bit harder for any bots to break
        ImageRectangle($image,0,0,$width-1,$height-1,$grey);
        imageline($image, 0, $height/2, $width, $height/2, $grey);
        imageline($image, $width/2, 0, $width/2, $height, $grey); 

        //Tell the browser what kind of file is come in
        header("Content-Type: image/jpeg"); 

        //Output the newly created image in jpeg format
        ImageJpeg($image);
    }
}
Let me know how to make it work or does it work in Zend?

Sridhar
Signature Solutions

www.signatrue.co.in
Reply With Quote