PHP验证码无法显示的原因及解决办法
一、如果是utf-8,就有可能是BOM没有清除
二、在Header("Content-type: image/PNG"); 之前有输出
三、第一行PHP隐藏了代码,如空格,回车等。 解决代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$image_width =70; //设置图像宽度
$image_height =18; //设置图像高度
$new_number = $_GET [num];
//$new_number=5;
$num_image =imagecreate( $image_width , $image_height ); //创建一个画布
imagecolorallocate( $num_image ,255,255,255); //设置画布的颜色
$black =imagecolorallocate( $num_image ,0,0,0);
/**/ for ( $i =0; $i < strlen ( $new_number ); $i ++){ //循环读取SESSION变量中的验证码
$font =mt_rand(3,5); //设置随机的字体
$x =mt_rand(1,8)+ $image_width * $i /4; //设置随机字符所在位置的X坐标
$y =mt_rand(1, $image_height /4); //设置随机字符所在位置的Y坐标
$color =imagecolorallocate( $num_image ,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)); //设置字符的颜色
imagestring( $num_image , $font , $x , $y , $new_number [ $i ], $color ); //水平输出字符
}
header( "content-type:image/png" ); //设置创建图像的格式
imagepng( $num_image ); //生成PNG格式的图像
imagedestroy( $num_image ); //释放图像资源
|
以上就是PHP验证码无法显示的原因及解决办法的讲解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!