如何解决php 生成验证码图片不显示问题
验证码第一天还好好的,第二天怎么整都不显示了,高级好几个小时。网上原因找了好久,哈哈,终于找到了!现在给大家分享一下:
程序:
<?php
w=80;//设置图片宽和高
h = 26;
str=Array();//用来存储随机码
string = “ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”;//随机挑选其中4个字符,也可以选择更多,注意循环的时候加上,宽度适当调整
for(
i=0;
i < 4;
i++)$str[$i]=$string[rand(0,35)];$vcode.=$str[$i];sessionstart();//启用超全局变量session
_SESSION["vcode"] =
vcode;
im = imagecreatetruecolor(
w,
h);
white=imagecolorallocate(
im,255,255,255); //第一次调用设置背景色
black=imagecolorallocate(
im,0,0,0); //边框颜色
imagefilledrectangle(
im,0,0,
w,
h,
white); //画一矩形填充
imagerectangle(
im,0,0,
w-1,
h−1,
black); //画一矩形框
//生成雪花背景
for(
i=1;
i < 200;
i++)$x=mtrand(1,$w−9);$y=mtrand(1,$h−9);$color=imagecolorallocate($im,mtrand(200,255),mtrand(200,255),mtrand(200,255));imagechar($im,1,$x,$y,"∗",$color);//将验证码写入图案for(
i = 0;
i<count(
str);
i++)$x=13+$i∗($w−15)/4;$y=mtrand(3,$h/3);$color=imagecolorallocate($im,mtrand(0,225),mtrand(0,150),mtrand(0,225));imagechar($im,5,$x,$y,$str[$i],$color);header(“Content−type:image/jpeg”);//以jpeg格式输出,注意上面不能输出任何字符,否则出错imagejpeg(
im);
imagedestroy($im);
?>
验证过,在别人的电脑上能运行,但是我自己的电脑却无法运行。原因如下:
首先要声明一下的是,我以为是gd2库没有打开,但用 phpinfo查看了,发现打开了。清除了bom,代码也是顶行开始写的,因此问题可能出现在代码上。后来经过研究,发现还是要更改一下程序,要在header前面加上ob_clean()这个语句,这样就可以运行了。
加在header输出之前:
ob_clean(); //关键代码,防止出现’图像因其本身有错无法显示’的问题。
header(“Content-type:image/jpeg”);这样问题就得到了解决。
</div>
<div class="article_social">
<div class="article_like">
<div class="circle circle-like" id="my_zan" data_id="jaYBBfJ"> </div>
window.open("http://share.baidu.com/s?type=text&searchPic=0&sign=on&to=tsina&url=http://www.tuicool.com/articles/jaYBBfJ&title=%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3php+%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81%E5%9B%BE%E7%89%87%E4%B8%8D%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98++%28%E5%88%86%E4%BA%AB%E8%87%AA+%40%E6%8E%A8%E9%85%B7%E7%BD%91%29&key=3113829255");
});("#share_qq_id").click( function() { window.open("http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=http://www.tuicool.com/articles/jaYBBfJ&title=%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3php+%E7%94%9F%E6%88%90%E9%AA%8C%E8%AF%81%E7%A0%81%E5%9B%BE%E7%89%87%E4%B8%8D%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98&desc=&summary=&site="); }); ("#share_weixin_id").click( function() {("#share_weixin_image").toggle(); });
<div class="bottom_plink huodong-detail-plink-banner clearfix">
<a href="http://bird.so" target="_blank"><img src="http://static1.tuicool.com/images/upload/bird700.jpg"></a>
</div>
</div>
<div id="site_articles" style="clear:both;">
<div class="article-part-title">
<span>推荐文章</span>
</div>
<ul class="side_article_list">
<li class="side_article_list_item">
1.<a href="/articles/FVVNjmj" target="_blank" title="PHP_设计模式">
PHP_设计模式
</a>
</li>
<li class="side_article_list_item">
2.<a href="/articles/R3I3M3y" target="_blank" title="[ PHP 内核与扩展开发系列] 第一个 PHP 扩展:编写函数">
[ PHP 内核与扩展开发系列] 第一个 PHP 扩展:编写函数
</a>
</li>
<li class="side_article_list_item">
3.<a href="/articles/FRBrMj2" target="_blank" title="yii2事件的解绑和级别概念">
yii2事件的解绑和级别概念
</a>
</li>
<li class="side_article_list_item">
4.<a href="/articles/r2UBbaI" target="_blank" title="PHP or Python如何选择?或许你应该考虑一下这三个问题">
PHP or Python如何选择?或许你应该考虑一下这三个问题
</a>
</li>
<li class="side_article_list_item">
5.<a href="/articles/F7ZFzyj" target="_blank" title="一个活生生的Yii2事件例子">
一个活生生的Yii2事件例子
</a>
</li>
<li class="side_article_list_item">
6.<a href="/articles/j2yEBr6" target="_blank" title="[ PHP 内核与扩展开发系列] 内存管理 —— 内存分配与释放">
[ PHP 内核与扩展开发系列] 内存管理 —— 内存分配与释放
</a>
</li>
</ul>
</div>
<div id="kan_articles"> <div class="article-part-title"> <span>相关推刊</span></div><div class="kan-list-container"><ul class="kan-list clearfix"> <li class="kan-item"> <span class="kan-item-head"> <small></small> <img class="kan-cover" src="http://img0.tuicool.com/EzuEvyZ.jpg!kan"> </span> <span class="kan-detail"> <i>《匿名收藏》</i> <i class="kan-num">57</i> </span> </li> <li class="kan-item"> <span class="kan-item-head"> <small></small> <img class="kan-cover" src="http://img0.tuicool.com/6Rn6beQ.png!kan"> </span> <span class="kan-detail"> <i>《匿名收藏》</i> <i class="kan-num">43</i> </span> </li> <li class="kan-item"> <a href="/kans/3605510558" target="_blank" class="kan-item-head"> <small>by 字研字禹</small> <img class="kan-cover" src="http://img0.tuicool.com/zU7VVf.png!kan"> </a> <span class="kan-detail"> <a href="/kans/3605510558" target="_blank">《PHP常用方法及模块》</a> <i class="kan-num">665</i> </span> </li> </ul></div><i class="clearfix"></i></div>
<div id="article_weibo" style="display:none;">
<div class="article-part-title">
<span>相关微博</span>
<sub>
<a href="/articles/weibo_list/jaYBBfJ" target="_blank">(<i id="weibo_num"></i>)</a>
</sub>
</div>
<div class="related-weibo-list"></div>
</div>
<div class="comments">
<div class="comments-area">
<div class="comments-header">
<h5>我来评几句</h5>
<div class="alert comment-alert alert-error" style="display:none;">
错误
</div>
<textarea cols="60" rows="5" id="comment-body" placeholder="请输入评论内容..." style="resize: none;"></textarea>
<span class="btn btn-medium btn-submit" id="comment-submit">登录后评论</span>
<p style="margin-top: 5px;margin-left:10px;">
已发表评论数(<span class="comment_cnt">0</span>)
</p>
</div>
<div class="comments-list">
<div class="empty-cmts alert alert-success" style="display:none;">
没有更多评论了^^
</div>
</div>
<div class="more-comments" style="display:none;">
<a href="">更多评论</a>
</div>
<div class="load-fail" style="display:none;">
评论加载失败,<a href="javascript:reload_comments('jaYBBfJ',1,0,-1);">重新加载</a>
</div>
</div>