session_start();
//随即生成一个四位数的数字验证码
$num="";
for($i=0;$i<4;$i++){
$num .=rand(0,9);
}
//4位验证吗也可用rand(1000,9999)直接生成
//将生成的验证码写入session,备验证页面使用
$_SESSION["checknum"]=$num;
//创建图片,定义颜色值
header ("Content-type: image/png");
$im=imagecreate(60,20);
$black=imagecolorallocate($im,0,0,0);
$gray=imagecolorallocate($im,200,200,200);
imagefill($im,0,0,$gray);
//随机绘制两条虚线,起干扰作用
$style=array($black,$black,$black,$black,$black,$gray,$gray,$gray,$gray,$gray);
imagesetstyle($im,$style);
$y1=rand(0,20);
$y2=rand(0,20);
$y3=rand(0,20);
$y4=rand(0,20);
imageline($im,0,$y1,60,$y3,IMG_COLOR_STYLED);
imageline($im,0,$y2,60,$y4,IMG_COLOR_STYLED);
//在画布上随机生成大量黑点,起干扰作用;
for($i=0;$i<80;$i++){
imagesetpixel($im,rand(0,60),rand(0,20),$black);
}
//将数字显示在画布上,数字之间的水平与垂直距离都在一定范围内随机生成
$strx=rand(3,8);
for($i=0;$i<4;$i++){
$strpos=rand(1,6);
imagestring($im,5,$strx,$strpos,substr($num,$i,1),$black);
$strx+=rand(8,12);
}
imagepng($im);
imagedestroy($im);
//ImageDestroy($im);
?>
取消
评论