按照老师打的,可是没有验证码的框,而且出现乱码
<?php
require_once'string.func.php';
//通过GD库做验证码
//创建画布
$width=80;
$height=28;
$image=imagecreatetruecolor($width,$height);
$white=imagecolorallocate($image,255,255,255);
$black=imagecolorallocate($image,0,0,0);
//用填充矩形填充画布
imagefilledrectangle($image,1,1,$width-x,$height-2,$white);
$type=1;
$length=4;
//赋值产生的验证码
$chars=buildRandomString($type,$length);
$_SESSION[$sess_name]=$chars;
$fontfiles= array ("simfang.ttf","simhei.ttf","simkai.ttf");
for ($i=0;$i<$length;$i++){
//设置随机大小
$size=mt_rand(14,18);
//随机角度
$angle=mt_rand(-15,15);
$x=5+$i*$size;
//随机的Y坐标
$y=mt_rand(20,26);
$fontfile="../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];
$color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));
$text=substr($chars,$i,1);
imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$text);
}
header("content-type:image/gif");
imagegif($image);
imagedestroy($image);
?>
string.func.php
<?php
//产生随机的字符串
function buildRandomString($type=1,$length=4){
//$type=1;
//$length=4;
if($type==1){
$char=join("",range(0,9));
}
else if($type==2){
$char=join("",array_merge(range("a","z"),range("A","Z")));
}
elseif($type==3){
$char=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));
}
if($length>strlen($chars)){
exit("字符串长度不够");
}
$chars=str_shuffle($chars);//随机打乱字符串
return substr($chars,0,$length);//截取
}
?>