84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
描述你的问题 GD库已经打开,搜索看了其他朋友的解决办法:清除BOM、ob_clean()、代码起始位置不换行还是不显示。
贴上相关代码
ringa_lee
经过测试,你的代码问题在这里:在实现随机下划线的时候,imagecolorallocate这个函数传入的参数不对,应该给予4个params,现在的代码给了6个参数。结果:修改后,验证码显示没有问题,可以正常输出。
这里的imagecolorallocate应该是传4个参数 还有没看懂你上面
这一点没明白你的意思是要干啥下面也看到调用的地方 注释之后
结果是这个
查看error log,再判断
header('Content-Type:image/png');
要从其他地方查看,从framework所有的文件进行DOM头排查
你先试试复制一些网上成功的代码试试看,如果能成功那么就是你代码的问题,不然就应该是环境的问题。
是不是没安装GD?检查phpinfo()
在header()前清理输出缓冲区,
ob_clean() header('Content-Type:image/png'); imagepng($_img);
最终生成的验证码是酱紫,
那么问题来了,1、为什么ob_clean()要加在imagepng()之前?显然,header()之前的代码都不会被缓存到ob,真正缓存到ob的是imagepng()生成的验证码,当你在浏览器刷新时,ob_clean()会为你清除前一次保存在ob的验证码。然后imagepng()再次生成验证码保存到ob,ob随后丢到程序缓存打包到浏览器。
ob_clean()
imagepng()
header()
2、假如没有ob_clean(),按理说也会生成一张验证码,验证码跑到哪里了?请使用php5.4以下版本或者关闭ob。
Ps:php5.3之后,ob_start()默认开启,重复添加ob_start()会导致ob_end_*()失效。(Oops..在本地编辑代码ob_start重复则出错,然而看到某个上传类却能完好运行。谁知道请详解一下。)
ob_start()
ob_end_*()
先谢谢帮修改代码高亮的朋友,改了几次高亮都不行,第一次用。回去试试。
清除缓存还是不行?
经过测试,你的代码问题在这里:
在实现随机下划线的时候,imagecolorallocate这个函数传入的参数不对,应该给予4个params,现在的代码给了6个参数。
结果:修改后,验证码显示没有问题,可以正常输出。
这里的imagecolorallocate应该是传4个参数 还有没看懂你上面![](http://img.php.cn/upload/image/000/000/000/78cd59640f42f6376628ddae40448cce-0.png)
这一点没明白你的意思是要干啥下面也看到调用的地方 注释之后![](http://img.php.cn/upload/image/000/000/000/4ff8731b694af607691f96bf8ae74b86-1.png)
结果是这个
查看error log,再判断
header('Content-Type:image/png');
要从其他地方查看,从framework所有的文件进行DOM头排查
你先试试复制一些网上成功的代码试试看,如果能成功那么就是你代码的问题,不然就应该是环境的问题。
是不是没安装GD?检查phpinfo()
在header()前清理输出缓冲区,
最终生成的验证码是酱紫,
那么问题来了,
1、为什么
ob_clean()
要加在imagepng()
之前?显然,
header()
之前的代码都不会被缓存到ob,真正缓存到ob的是imagepng()
生成的验证码,当你在浏览器刷新时,ob_clean()
会为你清除前一次保存在ob的验证码。然后imagepng()
再次生成验证码保存到ob,ob随后丢到程序缓存打包到浏览器。2、假如没有
ob_clean()
,按理说也会生成一张验证码,验证码跑到哪里了?请使用php5.4以下版本或者关闭ob。
Ps:php5.3之后,
ob_start()
默认开启,重复添加ob_start()
会导致ob_end_*()
失效。(Oops..在本地编辑代码ob_start重复则出错,然而看到某个上传类却能完好运行。谁知道请详解一下。)先谢谢帮修改代码高亮的朋友,改了几次高亮都不行,第一次用。回去试试。
清除缓存还是不行?