My captcha session working fine in local server but it is not working
in main server.


iam  giving code of my model, controller,view..etc.... pls rectify
it:-

My code of captcha for controller is:-
<?php

class CaptchaController extends AppController{

        public $uses    =       
array('SessionManager','Validator','Captcha','Flash');
        public $components=array('Session');

        function init(){
                $this->SessionManager->Session=$this->Session;
        }
        function index(){
                $this->init();
                /*
                $text = $this->SessionManager->get('captchaText');
                $height = 25;
                $width = 65;

                $image_p = imagecreate($width, $height);
                $black = imagecolorallocate($image_p, 0, 0, 0);
                $white = imagecolorallocate($image_p, 255, 255, 255);
                $font_size = 14;
                ob_start();
                imagestring($image_p, $font_size, 5, 5, $text, $white);
                imagejpeg($image_p, null, 80);
                exit;*/

                $urlRoot=Router::url('/',false);
                $image_width = 120;
                $image_height = 35;
                $characters_on_image = 6;
                $dir            =       Configure::read('FondDir');
                $font = $dir.'/monofont.ttf';
                $possible_letters = '23456789bcdfghjkmnpqrstvwxyz';
                $random_dots = 0;
                $random_lines = 20;
                $captcha_text_color="0x142864";
                $captcha_noice_color = "0x142864";
                $code = '';
                $i = 0;
                ob_start();
                while ($i < $characters_on_image) {
                $code .= substr($possible_letters, mt_rand(0,
strlen($possible_letters)-1), 1);
                $i++;
                }
                $this->SessionManager->set('captcha',$code);
                $this->Session->write('captcha',$code);

                $font_size      = $image_height * 0.75;
                $image      = @imagecreate($image_width, $image_height);


                /* setting the background, text and noise colours here */
                $background_color       = imagecolorallocate($image, 255, 255, 
255);

                $arr_text_color         = $this->hexrgb($captcha_text_color);
                $text_color             = imagecolorallocate($image, 
$arr_text_color['red'],
                                $arr_text_color['green'], 
$arr_text_color['blue']);

                $arr_noice_color        = $this->hexrgb($captcha_noice_color);
                $image_noise_color      = imagecolorallocate($image,
$arr_noice_color['red'],
                                $arr_noice_color['green'], 
$arr_noice_color['blue']);


                /* generating the dots randomly in background */
                for( $i=0; $i<$random_dots; $i++ ) {
                imagefilledellipse($image, mt_rand(0,$image_width),
                 mt_rand(0,$image_height), 2, 3, $image_noise_color);
                }


                /* generating lines randomly in background of image */
                for( $i=0; $i<$random_lines; $i++ ) {
                imageline($image, mt_rand(0,$image_width), 
mt_rand(0,$image_height),
                 mt_rand(0,$image_width), mt_rand(0,$image_height),
$image_noise_color);
                }


                /* create a text box and add 6 letters code in it */
                $textbox        = imagettfbbox($font_size, 0, $font, $code);
                $x                      = ($image_width - $textbox[4])/2;
                $y                      = ($image_height - $textbox[5])/2;
                imagettftext($image, $font_size, 0, $x, $y, $text_color, $font ,
$code);


                /* Show captcha image in the page html page */
                header('Content-Type: image/jpeg');// defining the image type 
to be
shown in browser widow
                imagejpeg($image);//showing the image
                imagedestroy($image);//destroying the image instance


                exit;
        }

        function hexrgb ($hexstr)
                {
                  $int = hexdec($hexstr);

                  return array("red" => 0xFF & ($int >> 0x10),
                                           "green" => 0xFF & ($int >> 0x8),
                                           "blue" => 0xFF & $int);
                }


}

?>


code for model is:-

<?php




class Captcha extends AppModel
{

        private $captchaText;
        private $canvasX;
        private $canvasY;
        private $fonts;
        public $name='Captcha';
        public $useTable        =       false;

        function __construct($string,$width,$height)
        {
                $this->captchaText      =       $string;
                $this->canvasX          =       $width;
                $this->canvasY          =       $height;
                
putenv("GDFONTPATH=".dirname(dirname(__FILE__))."/webroot/fonts");
                $this->fonts    =       
array("Avgardn.ttf","frkgothi.ttf","lsansd.ttf");

        }


        function setText($string)
        {
                $this->captchaText      =       $string;
        }
        function getText()
        {
                return $this->captchaText;
        }

        function render()
        {
                $image                  =       
imagecreatetruecolor($this->canvasX,$this->canvasY);
                $backGround             =       
imagecolorallocate($image,255,255,255);
                $borderColor    =
imagecolorallocate($image,rand(125,250),rand(125,255),rand(0,125));
                $textColor              =
imagecolorallocate($image,rand(125,250),rand(0,255),rand(125,125));

                $posY   =       ceil($this->canvasY/2);
                $posX   =       ceil($this->canvasX/2);
                $len    =       count($this->fonts);
                $font   =       
dirname(__FILE__)."/fonts/".$this->fonts[rand(0,$len-1)];
                imagefilledrectangle($image,0,0,$this->canvasX,$this->canvasY,
$backGround);
                //imagerectangle($image,5,5,$this->canvasX-5,$this-
>canvasY-5,$borderColor);
                
imagettftext($image,20,0,40,30,$textColor,$font,$this->captchaText);


                ob_start();
                header("Content-type:image/png");
                imagepng($image);
                ob_flush();

        }

}






?>


and i called in view file like this:-

 <tr>
                        <td><label>Captcha<em class="red">*</em></
label></td>
                        <td><img src="<?php echo  $urlRoot;?>captcha/"
alt="Captcha Security Code" class="captcha" /></td>
                        <td>&nbsp;</td>
                        <td>&nbsp;</td>
                      </tr>


but when form is submitte and i user to read value of session variable
like:-

 echo $captcha  =       $this->SessionManager->get('captcha');

it is not getting.... pls rectify this

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to