PHP验证码(画图)无法正常显示问题
最近正在学习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验证码(画图)无法正常显示问题相关推荐
- python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题
最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...
- 解决Linux系统中python matplotlib画图的中文显示问题
解决Linux系统中python matplotlib画图的中文显示问题 参考文章: (1)解决Linux系统中python matplotlib画图的中文显示问题 (2)https://www.cn ...
- php验证码一直验证错误,织梦输入正确验证码登录却一直显示错误的解决方法
针对这种情况,我也在网上找了各种织梦(dedecms)后台登陆验证码错误或不显示解决的方法,常见的就是验证码输入明明正确但却提示不正确,或者压根不显示,该怎么办呢. 错误原因是升级后的漏洞所致 对织梦 ...
- python画图程序没有图_解决python中使用plot画图,图不显示的问题
解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...
- Win11自带画图软件怎么显示标尺?
Win11自带画图软件怎么显示标尺?很多朋友会使用电脑自带的画图工具来进行一些简单的图片编辑,大家想知道这款软件如何显示标尺,带有刻度会比较好进行某些操作,今天来讲讲具体的设置方法. 这里有小白一键重 ...
- 为什么python画不了图-解决python中使用plot画图,图不显示的问题
python matplotlib画的图怎么显示不出来 初学python,matplotlib库画图不显示分享助别熬夜了,你等不来的人,等到多晚都不会来的. 见图.python matplotlib ...
- SDL学习——画图、点阵显示
很久以前,发表了几篇SDL在Windows编译的文章,同时也参考网上的一个十分简单的例子写了测试的程序,本文章将以此为基础并添加自己的代码. 回首第1篇关于SDL的文章,那已是去年12月份写的了,时间 ...
- PHP 验证码图片无法正常显示
今天学习PHP 验证码的制作, 遇到一个问题, 这个问题让我纠结老久!中途的郁闷情况, 感觉让自己快吐血三升.笔者先按照老师给出的代码写好了之后, 在检查GD 已经开启的同时, 运行结果是我的图片怎 ...
- 在MATLAB画图时中文显示乱码的解决办法
新电脑安装MATLAB2017b之后打开以往的代码,图形窗口上显示的文字都是乱码 ,乱码情况如下 legend('参考节点坐标','未知节点估计坐标','未知节点实际坐标'); 可以看到,本应该显示l ...
- R语言读取 文件 中文乱码,R语言画图 中文不显示
R语言 读入excel文件:用openxlsx install.packages(openxlsx) library(openxlsx) a<-read.xlsx("exercise1 ...
最新文章
- 6次课(相对和绝对路径、cd命令、创建和删除目录mkdir/rmdir、rm命令)
- 【Joomla】TinyMCE - Add custom styles
- 使用fcntl编写set_fl()函数和clr_fl()函数
- 结合源码深入理解Android Crash处理流程
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
- 电子计算机的大脑核心是什么,戴君惕《人脑与电脑》初中说明文阅读题及答案...
- 开发提交审核流程_小程序如何提交审核,多久能通过?
- 二维数组排序php array_work,Arrays.Sort()中的那些排序算法
- Q4_一个事物领导另一个
- 2019CSP-S初赛知识点汇总
- React-如何在jsx中自动补全标签(vscode)
- oracle timesten tt的启动与停止
- 【bzoj 3815】卡常数
- 程序员面试需要出示身份证和毕业证原件吗
- linux硬链接与软链接的联系与区别
- 天地图和谷歌地图静态图像素坐标和经纬度坐标互转
- (八十三)第三方类库不支持64位处理器的解决方法
- transforms及Compose
- 【测试】黑盒测试(功能性测试)和白盒测试
- [014量化交易] python 通过tushare 获取股票数据、名称、股票代码、指定股票名
热门文章
- linux 文件读写锁,linux下的简单文件读写锁的操作
- bootstrap confirm 确认后在执行_如何利用 Laravel 提供的密码确认功能来保护用户信息安全...
- VB6 中 善用 ByRef 提升速度
- 8种寻找机器学习数据集的方法 | 附数据集资源
- 澎思科技获洪泰基金千万级天使轮融资,深耕AI+安防行业
- 强化学习工具Horizon开源:Facebook曾用它优化在线视频和聊天软件
- 韩国小哥哥用Pytorch实现谷歌最强NLP预训练模型BERT | 代码
- Hinton反思新作:我说反向传播不好,但还是没谁能颠覆它
- 《连线》杂志专访李彦宏:百度all in AI 欲引领智能革命
- 解决spring的xml文件打开没有namespace等操作选项的问题