imagepng输出验证码时,浏览器不显示 php生成图像,输出到浏览器,看不到图片
原本本站好好的,突然今天登陆后台的时候发现验证码出不来了,这就郁闷了。好像我啥都没有操作呀,怎么好好的就挂了呢。然后检查了服务器里另外一个站点,发现验证码正常。那么以我的经验,就要对网站代码开始排查了。
原本本站好好的,突然今天登陆后台的时候发现验证码出不来了,这就郁闷了。好像我啥都没有操作呀,怎么好好的就挂了呢。然后检查了服务器里另外一个站点,发现验证码正常。那么以我的经验,就要对网站代码开始排查了。
一般验证码输出浏览器不显示的问题跟以下原因有关:
1、Gd库未开启,或者gd库未安装。(显然我之前是好的,这条可以排出)
假如你的问题是gd库未开始,那么你可以在php.ini中的extension=php_gd2.dll前面的“;”去掉,然后重启下服务器
那么如果你不知道自己有没有安装gd库,你可以执行下 phpinfo()
函数,然后搜索查看下是否存在,有就代表有安装gd库了。
2、bom 头问题,因为我有用到session。而输出图片有段代码一般是这样的 header
输出头
private function outPut() {
header('Content-type:image/png'); // 有个header 头输出
imagepng($this->img);
imagedestroy($this->img);
}
一般utf-8文件和记事本的文件是容易产生bom头的。你可以注意下。
想想,我好像没有动啥代码,应该和这个也无关吧,遂也没怎么理这个问题。
3、代码问题。请检查你的代码里是否有逻辑书写错误(显然我也不是这个问题)
那这下子就郁闷了,到底是怎么回事啊!抓狂中....
没办法,那只能一行行代码进行排查,并且对这以上三条逐一核对
发现都他妈的没毛病啊
就这样1个小时过去了
后来没辙,想到了,前几天唯一改的一个文件,看了下加的代码,也没问题呀,对代码问题,但是,眼神犀利的我,瞄到了一点
于是,删除这2行,验证码出来了。
如果你遇到同样的问题,可以尝试下,按我上面说的3个原因排查下。希望我的这篇博文对你有帮助。
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论