PHP generates random captcha image code

  • 2020-03-31 20:21:30
  • OfStack


<?php 
 
class DefaultController extends AppController 
{ 
public function index() { 
$len = 5; 
$str = "ABCDEFGHIJKLNMPQRSTUVWXYZ123456789"; 

$im = imagecreatetruecolor ( 70, 20 ); 
$bgc = imagecolorallocate($im, 255, 255, 255); 
$bgtxt = imagecolorallocate($im, 220, 220, 220); 

//Random palette
$colors = array( 
imagecolorallocate($im, 255, 0, 0), 
imagecolorallocate($im, 0, 200, 0), 
imagecolorallocate($im, 0, 0, 255), 
imagecolorallocate($im, 0, 0, 0), 
imagecolorallocate($im, 255, 128, 0), 
imagecolorallocate($im, 255, 208, 0), 
imagecolorallocate($im, 98, 186, 245), 
); 

//Fill background color
imagefill($im, 0, 0, $bgc); 

//Random number
$verify = ""; 
while (strlen($verify) < $len) { 
$i = strlen($verify); 
$random = $str[rand(0, strlen($str))]; 
$verify .= $random; 

//Draw background text
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $bgtxt); 
//Draws the main text message
imagestring($im, 6, ($i*10)+3, rand(0,6), $random, $colors[rand(0, count($colors)-1)]); 
} 

//Add random noise
for($i=0; $i<100; $i++) { 
$color = imagecolorallocate($im, rand(50,220), rand(50,220), rand(50,220)); 
imagesetpixel($im, rand(0,70), rand(0,20), $color); 
} 

//Store the verification code in $_SESSION
sess("verify", $verify); 

//Output the image and release the cache
header('Content-type: image/png'); 
imagepng($im); 
imagedestroy($im); 
} 
}; 
?>


Related articles: