> php教程 > php >

imagepng输出验证码时,浏览器不显示 php生成图像,输出到浏览器,看不到图片

来源:网络 文章列表 2018-11-13 8
原本本站好好的,突然今天登陆后台的时候发现验证码出不来了,这就郁闷了。好像我啥都没有操作呀,怎么好好的就挂了呢。然后检查了服务器里另外一个站点,发现验证码正常。那么以我的经验,就要对网站代码开始排查了。

原本本站好好的,突然今天登陆后台的时候发现验证码出不来了,这就郁闷了。好像我啥都没有操作呀,怎么好好的就挂了呢。然后检查了服务器里另外一个站点,发现验证码正常。那么以我的经验,就要对网站代码开始排查了。

一般验证码输出浏览器不显示的问题跟以下原因有关:

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个原因排查下。希望我的这篇博文对你有帮助。

腾讯云限量秒杀

1核2G 5M 50元/年 2核4G 8M 74元/年 4核8G 5M 818元/年 CDN流量包 100GB 9元

版权声明

本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。

评论

  • 随机获取
点击刷新
精彩评论

友情链接