php 图像验证码无法显示图片

代码如下:无法显示图片session_start();header("content-type:image/png");//设置创建图像的格式$image_width=7... 代码如下 :无法显示图片
session_start();
header("content-type:image/png"); //设置创建图像的格式
$image_width=70; //设置图像宽度
$image_height=18; //设置图像高度
srand(microtime()*100000); //设置随机数的种子
for($i=0;$i<4;$i++){ //循环输出一个4位的随机数
$new_number.=dechex(rand(0,15));
}
$_SESSION['check_checks']=$new_number; //将获取的随机数验证码写入到SESSION变量中

$num_image=imagecreate($image_width,$image_height); //创建一个画布
imagecolorallocate($num_image,255,255,255); //设置画布的颜色
for($i=0;$i<strlen($_SESSION['check_checks']);$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,$_SESSION['check_checks'][$i],$color); //水平输出字符
}
imagepng($num_image); //生成PNG格式的图像
imagedestroy($num_image); //释放图像资源
展开
 我来答
维将山水复西风G
2016-06-29
知道答主
回答量:2
采纳率:0%
帮助的人:2177
展开全部
这段代码如果放到页面里必须保证占第1行开始,代码前无其他不相关代码。。。,建议建立纯代码文件后,在页面里用<img src='img.php' />调用,因为gd库默认生成全部代码,如果代码上有图片不支持的代码就会出错,但在尾部就没有影响。。。
zzs1949
2014-07-28 · TA获得超过1600个赞
知道小有建树答主
回答量:1250
采纳率:80%
帮助的人:1124万
展开全部

经过本机测试,代码正常运行,你之所以不能运行,怀疑是因为,你所在服务器,不支持libpng

安装上就可以了

代码运行截图

追问

你说不支持png,但这段代码有能正常原先 并显示图片

追答

那你试下下面的代码,看能否正常显示

如果能正常显示,说明你的session有问题

<?php

header("content-type:image/png");    //设置创建图像的格式

$image_width=70;                      //设置图像宽度

$image_height=18;                     //设置图像高度

srand(microtime()*100000);          //设置随机数的种子

for($i=0;$i<4;$i++){                  //循环输出一个4位的随机数

   $new_number.=dechex(rand(0,15));

}
//$_SESSION['check_checks']=$new_number;    //将获取的随机数验证码写入到SESSION变量中     


$num_image=imagecreate($image_width,$image_height);  //创建一个画布

imagecolorallocate($num_image,255,255,255);     //设置画布的颜色

for($i=0;$i<strlen($new_number);$i++){  //循环读取$new_number变量中的验证码


   $font=mt_rand(3,5);                           

   $x=mt_rand(1,8)+$image_width*$i/4;             

   $y=mt_rand(1,$image_height/4);                   

   $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);    

}

imagepng($num_image);       //生成PNG格式的图像

imagedestroy($num_image);   //释放图像资源
?>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
习义万寄灵
2019-06-26 · TA获得超过3967个赞
知道大有可为答主
回答量:3074
采纳率:28%
帮助的人:160万
展开全部
我刚刚把代码给你测试了一下,别的没什么原因,错误几点你看下
1、就是你的$img写成了$im,这个错误不能出现啊,
2、imagefill($img,0,0,white);//给图片填充颜色;这个white应该加个"$"号吧,你想让背景是白色的,也可以不用设置,或者你可以改成
imagefill($img,0,0,$red);
你可以去试下啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式