今天学习PHP  验证码的制作, 遇到一个问题, 这个问题让我纠结老久!中途的郁闷情况, 感觉让自己快吐血三升。笔者先按照老师给出的代码写好了之后, 在检查GD 已经开启的同时, 运行结果是我的图片怎么也无法显示。在同学电脑上测试, 在自己电脑上面反复检查代码, 这样持续了1 个多小时, 但是问题依然没有解决!

当我从网上摘抄一段验证码代码时, 新建一个PHP 文件, 将此代码贴上, 运行结果无误。 说明我的GD 没有问题, 那么一定是我的代码问题了, 可是同样一段代码, 讲课的老师能运行, 完全没问题, 为什么到了我这就出问题了呢。现在我将这段代码分享给大家看一下, 待会在给大家说说我发现的问题, 以及我对这个问题的无语之处的抱怨!!这TMD 怎么能算是一个问题啊!!!

<?header("Content-Type: image/jpeg");
for($i = 0; $i < 4; $i++)
{$random .= rand(0, 9);
}$im = imagecreatetruecolor(100, 50);$bg = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255));$co = imagecolorallocate($im, 43, 100, 0);
imagestring($im, 6, 10, 20, $random, $co);
imagejpeg($im);
imagedestroy($im);?>

以上是我开始写的代码, 这段代码一直都没能够正常运行。运行过程中, 一直都是无法正常显示图片。呵呵, 想着我这代码无法运行的错误, 我现在还想抱怨,还想吐血。上面的代码没办法运行, 然后我在无意中稍微变化了一下,而且在我平时的认识中,这根本就不能算做变化的变化, 居然使得我的代码正常运行。下面这段代码是我正常运行的代码, 这里分享给大家。

<?header("Content-Type: image/jpeg");
for($i = 0; $i < 4; $i++)
{$random .= rand(0, 9);
}$im = imagecreatetruecolor(100, 50);$bg = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255));$co = imagecolorallocate($im, 43, 100, 0);
imagestring($im, 6, 10, 20, $random, $co);
imagejpeg($im);
imagedestroy($im);?>

这段代码, 跟上面的那段代码, 亲爱的读者朋友, 你能看出他们的差别来吗?

差异:

这两段代码, 所写的内容是完全相同的。 唯一的不同点是, 第一段代码在开始写代码前(在<? 的前面), 我加了几个换行。而第二段代码,我则没有加换行。就这几个换行, 导致了PHP GD 生成图片无法正常显示。以前编写程序的时候, 都从来没有想过, 正常空格, 换行会给代码的运行带来这样的问题。 而且, 在“编译原理” 这门课上,我学习到的是,“词法分析中, 最好是在token 与token 之间用一个空格符来进行分隔, 这样编译器在进行扫描的时候,会大大提高扫描速度” 。然而, 今天这样的情况(因为几个换行符)使得整个程序没法正常运行, 确实超出我的认知范围。目前, 我还是第一次因为换行符, 把自己给难倒在编程道路上。后来, 经过测试,我发现,只要在 <? 前面添加了内容, 那么图片都没法显示。但是在 ?> 后面添加内容是不会影响到程序的运行的。

所以, 在PHP GD 图片程序中, 代码一定要顶行写, 这样才能正常运行。 这是我目前能找出的解决办法。虽然, 问题是解决了, 但是, 心里还是在纠结啊!我的个神啊!! 怎么能有这样的荒唐情况, 难道这个PHP 的编译器就这样的为难我们的程序员吗!!(虽然鄙人写代码写得很少, 错误也经常的出现, 但是这个错误绝对是最憋屈的一次‘错误’)

同时, 我发现一个有意思的问题, 在写这篇文章的时候, 我还没能发现这个问题的原因, 所以, 我也没有像出解决的办法, 不过我想把这个问题先通过笔记的方式留下来,以免以后忘记, 当解决后, 在与大家分享这个问题的原因。

状况:

因为我使用的是极速版浏览器(世界之窗极速版)。这个浏览器有两种内核处理器(一种是默认的谷歌极速模式, 另一种是IE 兼容模式)。同一段代码在这两种模式上运行, 当会得到不一样的结果, 这应该就是所谓的浏览器兼容性问题。具体问题是什么样的呢, 我也不好说, 这里上传两张运行截图:

极速模式:

兼容模式:

以上两张照片的区别是, 极速模式, 是在浏览器的顶端开始显示图片, 而IE 兼容模式, 则是在里浏览器顶端一段距离开始显示, 而根据程序的要求,正常的情况, 应该是IE 兼容模式这样的情况。

PHP 验证码图片无法正常显示相关推荐

  1. 关于IE下验证码图片无法正常显示问题

    今在项目中遇到一个问题,https请求的验证码图片在IE11中显示不了.解决办法如下: <img id="captcha"/> $.post("/login/ ...

  2. tp5.1使用验证码类时,验证码图片不显示

    一.问题描述 ​在使用 tp5.1 框架中的 验证码类 的时候,准备工作都做好了,但是验证码图片却无法显示,浏览器缓存也清掉了,电脑也重启的,图片路径也没有问题,就是不显示验证码的图片. 1)通过co ...

  3. dedecms织梦系统后台验证码图片不显示的解决方法

    dedecms织梦系统后台验证码图片不显示的解决方法 参考文章: (1)dedecms织梦系统后台验证码图片不显示的解决方法 (2)https://www.cnblogs.com/afish/p/40 ...

  4. 如何解决php 生成验证码图片不显示问题

    如何解决php 生成验证码图片不显示问题 参考文章: (1)如何解决php 生成验证码图片不显示问题 (2)https://www.cnblogs.com/behindman/p/9547923.ht ...

  5. 360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,但是极速模式可以显示?

    问题 最近遇到一个验证码出不来的问题,在360极速浏览器以及360安全浏览器在兼容模式下验证码图片显示不来,效果如下: 这个验证码的代码元素如下,是一张图片,由接口提供的一个图片链接,返回的是文件流. ...

  6. 登陆验证码图片不显示解决办法

    大多数用户发现在访问某些需要填写验证码的地方,都无法显示验证码图片(显示为一个红色小X),这是Microsoft Windows XP操作系统的一个非常严重的Bug.解决办法: 之一 1.手动添加:运 ...

  7. php验证码有图片没数字,php验证码图片不显示

    php 动态验证码,PHP如何开发短信验证码功能?,php验证码代码,php验证码图片不显示 欢迎登录清源教育官网 www.tsingyuan.cn 查看更多视频教程 php 验证码linux下只显示 ...

  8. .net core Linux ( Centos 7 ) 下 验证码图片显示不出来, 或者乱码

    验证码图片显示不出来 在 Linux 命令行运行: dotnet Web.dll # dll文件名 自己换 (注意:不要用 nohup dotnet Web.dll 在后台运行,后台运行看不到异常) ...

  9. Thinkphp5.1的验证码图片不显示,错误提示404

    Thinkphp5.1项目中的验证码图片不显示,错误提示404 错误现象: 使用tp5框架的验证码时候出现了该错误 [图片]captcha console中提示: Failed to load res ...

最新文章

  1. HDLBits 系列(3)Priority Encoder(Case/Casez)
  2. Pygame 使用Djkstra广度搜索寻找迷宫(相对)最短路径
  3. tableau 倒序都倒了_tableau 网络图与弧线图绘制
  4. ReferenceError: regeneratorRuntime is not defined解决方法
  5. 190514每日一句
  6. css background 旋转_纯CSS画小电视
  7. Mac好用的图片压缩软件——JPG Compress 2 for Mac
  8. pwrkey直接接地 sim7020_有方模块常见问题解答
  9. 青岛科技大学计算机一级报名,2019年3月山东青岛科技大学计算机等级考试报名通知...
  10. ASR_intern_summary
  11. 高数:第四章(同济大学第七版)
  12. 网络安全学习笔记——红队实战攻防(上)
  13. linux网络服务器笔记
  14. 北航宇航学院计算机,2014年北航自动化考生倾情奉献的总结(也试用于宇航学院)...
  15. 充值10万跌成860元,YAM一日崩盘记
  16. 基于51单片机的八路抢答器汇编语言Proteus仿真原理图程序
  17. 原厂PW4203降压型1-3节锂电池充电芯片
  18. 数据结构与算法(程序员常用十种算法下:5~10)
  19. IDL实现火灾监测与火点提取
  20. JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

热门文章

  1. 同时遍历两个list
  2. 最新 955 互联网公司白名单来了!
  3. 算法概述——四大算法总结
  4. game.php中文什么意思,game是什么意思中文翻译
  5. 【Java】数组Array(概念、相关语法、相关算法)
  6. 使用scrapy再次爬取猫眼前100榜单电影!
  7. isp,iap,sw-jtag
  8. Java语言基础之单行注释与多行注释
  9. Win10左下角搜索栏以及资源管理器搜索栏无法使用(点击没有反应)
  10. 关于SQL语句的左连接和右连接,内连接和外连接的区别