最近正在学习PHP,在做验证码时出现了问题,就是图片无法显示,首先检查GD2是支持的,换了好几个PHP版本也不行,最终找到的解决的方法,首先看下面的代码:
    代码一:

代码是没有任何问题的,但是无法显示图片。解决方案:为了能够显示,必须在header前加入ob_clean()函数,问题就解决了。ob_clean()函数是为了清除输出缓存区的内容,因为在绘制图片是会生成许多图片类的文件,要正常显示的话,必须要清除缓冲区内容。

<?php

session_start();

$_width=75;

$_height=25;

$_code_num=4;

//生成四个随机数,当然更多也是可以的

for ($i = 0; $i < $_code_num; $i++) {

$_num.=dechex(mt_rand(0, 15));

}

//将随机数放到session中保存

$_SESSION["code"]=$_num;

//创建图片

$_img_png=p_w_picpathcreatetruecolor($_width, $_height);

//设置颜色

$_color=p_w_picpathcolorallocate($_img_png,255,255,255);

//将设置的颜色填充

p_w_picpathfill($_img_png, 0, 0, $_color);

//设置验证码边框

// $_black_border=p_w_picpathcolorallocate($_img_png, 255,255, 255);//边框是白色

// p_w_picpathrectangle($_img_png, 0, 0,$_width-1 , $_height-1,$_black_border);

//随机画出六条线条 使用p_w_picpathline;

for($i=0;$i<6;$i++){

$_random_color=p_w_picpathcolorallocate($_img_png, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

p_w_picpathline($_img_png, mt_rand(0, $_width), mt_rand(0, $_height), mt_rand(0, $_width), mt_rand(0, $_height), $_random_color);

}

//随机画出雪花

for($i=0;$i<100;$i++){

$_random_color=p_w_picpathcolorallocate($_img_png, mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));

p_w_picpathstring($_img_png, 1, mt_rand(1, $_width), mt_rand(1, $_height),''*'', $_random_color);

}

//将四位验证码放进去

for($i=0;$i<$_code_num;$i++){

$_code_color=p_w_picpathcolorallocate($_img_png, mt_rand(0,170), mt_rand(0,170), mt_rand(0,170));

p_w_picpathstring($_img_png, 5, $i*$_width/4+mt_rand(1, 9), mt_rand(1,$_height/2), $_SESSION["code"][$i], $_code_color);

}

//输出图片

header("Content-Type:p_w_picpath/png");//设置类型是图片类型;

p_w_picpathpng($_img_png);

p_w_picpathdestroy($_img_png);

?>

注:如果没有使用ob_clean()函数,还有一种方法是<?php?>必须顶头写,而且内部第一行不能出现任何空行,php内部的代码也要顶头写。

转载于:https://blog.51cto.com/737110312/1529933

PHP验证码(画图)无法正常显示问题相关推荐

  1. python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...

  2. 解决Linux系统中python matplotlib画图的中文显示问题

    解决Linux系统中python matplotlib画图的中文显示问题 参考文章: (1)解决Linux系统中python matplotlib画图的中文显示问题 (2)https://www.cn ...

  3. php验证码一直验证错误,织梦输入正确验证码登录却一直显示错误的解决方法

    针对这种情况,我也在网上找了各种织梦(dedecms)后台登陆验证码错误或不显示解决的方法,常见的就是验证码输入明明正确但却提示不正确,或者压根不显示,该怎么办呢. 错误原因是升级后的漏洞所致 对织梦 ...

  4. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  5. Win11自带画图软件怎么显示标尺?

    Win11自带画图软件怎么显示标尺?很多朋友会使用电脑自带的画图工具来进行一些简单的图片编辑,大家想知道这款软件如何显示标尺,带有刻度会比较好进行某些操作,今天来讲讲具体的设置方法. 这里有小白一键重 ...

  6. 为什么python画不了图-解决python中使用plot画图,图不显示的问题

    python matplotlib画的图怎么显示不出来 初学python,matplotlib库画图不显示分享助别熬夜了,你等不来的人,等到多晚都不会来的. 见图.python matplotlib ...

  7. SDL学习——画图、点阵显示

    很久以前,发表了几篇SDL在Windows编译的文章,同时也参考网上的一个十分简单的例子写了测试的程序,本文章将以此为基础并添加自己的代码. 回首第1篇关于SDL的文章,那已是去年12月份写的了,时间 ...

  8. PHP 验证码图片无法正常显示

    今天学习PHP  验证码的制作, 遇到一个问题, 这个问题让我纠结老久!中途的郁闷情况, 感觉让自己快吐血三升.笔者先按照老师给出的代码写好了之后, 在检查GD 已经开启的同时, 运行结果是我的图片怎 ...

  9. 在MATLAB画图时中文显示乱码的解决办法

    新电脑安装MATLAB2017b之后打开以往的代码,图形窗口上显示的文字都是乱码 ,乱码情况如下 legend('参考节点坐标','未知节点估计坐标','未知节点实际坐标'); 可以看到,本应该显示l ...

  10. R语言读取 文件 中文乱码,R语言画图 中文不显示

    R语言 读入excel文件:用openxlsx install.packages(openxlsx) library(openxlsx) a<-read.xlsx("exercise1 ...

最新文章

  1. 6次课(相对和绝对路径、cd命令、创建和删除目录mkdir/rmdir、rm命令)
  2. 【Joomla】TinyMCE - Add custom styles
  3. 使用fcntl编写set_fl()函数和clr_fl()函数
  4. 结合源码深入理解Android Crash处理流程
  5. 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
  6. 电子计算机的大脑核心是什么,戴君惕《人脑与电脑》初中说明文阅读题及答案...
  7. 开发提交审核流程_小程序如何提交审核,多久能通过?
  8. 二维数组排序php array_work,Arrays.Sort()中的那些排序算法
  9. Q4_一个事物领导另一个
  10. 2019CSP-S初赛知识点汇总
  11. React-如何在jsx中自动补全标签(vscode)
  12. oracle timesten tt的启动与停止
  13. 【bzoj 3815】卡常数
  14. 程序员面试需要出示身份证和毕业证原件吗
  15. linux硬链接与软链接的联系与区别
  16. 天地图和谷歌地图静态图像素坐标和经纬度坐标互转
  17. (八十三)第三方类库不支持64位处理器的解决方法
  18. transforms及Compose
  19. 【测试】黑盒测试(功能性测试)和白盒测试
  20. [014量化交易] python 通过tushare 获取股票数据、名称、股票代码、指定股票名

热门文章

  1. linux 文件读写锁,linux下的简单文件读写锁的操作
  2. bootstrap confirm 确认后在执行_如何利用 Laravel 提供的密码确认功能来保护用户信息安全...
  3. VB6 中 善用 ByRef 提升速度
  4. 8种寻找机器学习数据集的方法 | 附数据集资源
  5. 澎思科技获洪泰基金千万级天使轮融资,深耕AI+安防行业
  6. 强化学习工具Horizon开源:Facebook曾用它优化在线视频和聊天软件
  7. 韩国小哥哥用Pytorch实现谷歌最强NLP预训练模型BERT | 代码
  8. Hinton反思新作:我说反向传播不好,但还是没谁能颠覆它
  9. 《连线》杂志专访李彦宏:百度all in AI 欲引领智能革命
  10. 解决spring的xml文件打开没有namespace等操作选项的问题