| 
<?php
session_start();
 Class Captcha{
 //Send a generated image to the browser
 
 
 function create_image($string_captcha,$width=130,$height=35)
 {
 //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);
 $security_code = $string_captcha;
 
 
 /* ********************************************
 Use this part if you need to Set the session
 to store the security code                */
 $_SESSION['security_code'] = $security_code;
 
 
 $CodeInd=0;
 $arrSecCode=array();
 $chars = preg_split('//', $security_code);
 
 $security_code=implode(" ",$chars);
 //Set the image width and height
 //$width = 130;
 //$height = 35;
 
 //Create the image resource
 $image = ImageCreate($width, $height);
 
 //We are making three colors, white, black and gray
 $arrB=array(0,255,129,10,48,200,186);
 $arrR=array(0,255,129,111,48,210,126);
 $arrG=array(0,205,139,110,48,5,186);
 $black = ImageColorAllocate($image, $arrR[rand(0,6)], $arrG[rand(0,6)], $arrB[rand(0,6)]);
 $white = ImageColorAllocate($image, 255, 255, 255);
 $grey = ImageColorAllocate($image, 175, 253, 253);
 
 //Make the background black
 ImageFill($image, 0, 0, $black);
 
 $font=5;
 
 $arrSel=array(1,2,3,4);
 $selectedNum=$arrSel[rand(0,3)];
 
 
 ImageString($image, $font, 10, 10, $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);
 
 if($selectedNum == 1 ){
 imageline($image, 0, $height/2, $width, $height/5, $grey);
 imageline($image, $width/2, 0, $width/3, $height/5, $grey);
 imageline($image, $width/2, 0, $width/10, $height, $grey);
 imageline($image, $width/2, 0, $width/10, $height/6, $grey);
 }
 
 if($selectedNum == 2 ){
 imageline($image, $width/1, 0, $width/6, $height, $grey);
 imageline($image, 0, $height/5, $width, $height/8, $grey);
 imageline($image, 0, $height/5, $width/5, $height/8, $grey);
 imageline($image, 0, $height/3, $width, $height, $grey);
 }
 
 if($selectedNum == 3 ){
 imageline($image, 0, $height, $width, 0, $grey);
 imageline($image, 0, 0, $height, $height, $grey);
 imageline($image, $width/5, 0, $width/6, $height, $grey);
 imageline($image, $width/4, 0, $width/4, $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);
 
 //Free up resources
 ImageDestroy($image);
 }
 
 
 
 function generateAlphaNumericString($nLength=6){
 $strAlphaNumeric="6j4e3s2u5s1";
 if( $nLength > 0){
 $arrStr= array();
 $nChk=rand(1,3);
 $capitalLetterArray=array("A","B","C","D","E","G","H","K","M","N","P","Q","R","S","T","X","Y","Z");
 $smallLetterArray=array("a","b","c","d","e","g","h","k","m","n","p","q","r","s","t","x","y","z");
 //            $arrStr[0]=($nChk==2)?chr(rand(97,122)):($nChk==1)?chr(rand(65,90)):rand(1,9);
 $arrStr[0]=($nChk==2)?$smallLetterArray[rand(0,17)]:($nChk==1)?$capitalLetterArray[rand(0,17)]:rand(1,9);
 for($i=1;$i<$nLength; $i++){
 $nInd=$i+1;
 if( $nInd%2 == 0){
 $arrStr[$i]=rand(1,9);
 }else{
 $chk=rand(1,2);
 if($chk==1){
 //$arrStr[$i]=chr(rand(65,90)); //to get all Capital alphabets
 $arrStr[$i]=$capitalLetterArray[rand(0,17)];
 }else{
 //$arrStr[$i]=chr(rand(97,122)); //to get all Small alphabets
 $arrStr[$i]=$smallLetterArray[rand(0,17)];
 }
 }
 }
 $strAlphaNumeric=implode("",$arrStr);
 }
 return $strAlphaNumeric;
 }
 
 
 function CaptchaSecurityImages($width,$height,$string_captcha) {
 $security_code=$string_captcha;
 $_SESSION['security_code'] = $security_code;
 $CodeInd=0;
 $arrSecCode=array();
 $chars = preg_split('//', $security_code);
 
 $code=implode(" ",$chars);
 $code="JESUS";
 /* font size will be 75% of the image height */
 $font_size = $height * 0.75;
 $image = imagecreate($width, $height) or die('Cannot initialize new GD image stream');
 /* set the colours */
 $background_color = imagecolorallocate($image, 255, 255, 255);
 $text_color = imagecolorallocate($image, 20, 40, 100);
 $noise_color = imagecolorallocate($image, 100, 120, 180);
 /* generate random dots in background */
 for( $i=0; $i<($width*$height)/3; $i++ ) {
 imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
 }
 /* generate random lines in background */
 for( $i=0; $i<($width*$height)/150; $i++ ) {
 imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
 }
 /* create textbox and add text */
 $textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function');
 $x = ($width - $textbox[4])/2;
 $y = ($height - $textbox[5])/2;
 imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
 /* output captcha image to browser */
 header('Content-Type: image/jpeg');
 imagejpeg($image);
 imagedestroy($image);
 
 }
 }
 $obj=new Captcha;
 //CaptchaSecurityImages(130,40,$obj->generateAlphaNumericString(6));
 $secCode="";
 if( isset( $_GET['code'] ) ) $secCode=trim($_GET['code']);
 
 if( $secCode == "" ){
 $secCode=$obj->generateAlphaNumericString(5);
 if( $secCode == "" ) $secCode="JeSuS";
 }
 
 //Usage of function
 //$obj->create_image(SecurityCodeText,WidthOfImage,heightOfImage);
 
 $obj->create_image($secCode,130,35);
 
 exit();
 
 //How to use this class?
 // Simply call this file imagecaptcha.php as  source of an image tag
 //eg: <img src=imagecaptcha.php?code=2422 />  parameter code is optional
 
 ?>
 
 |