目录
回复讨论(解决方案)
首页 后端开发 php教程 验证码图片不显示

验证码图片不显示

Jun 23, 2016 pm 01:40 PM

本人不会PHP,所以还请各位大神见谅
直接访问这个页面也不显示(红色XX)
本人百度试着解决
GD是开着的
可还是不显示图片
求大神帮助

<?phpini_set('display_errors', 'Off');Header("Content-type: image/gif");/** 初始化*/$border = 0; //是否要边框 1要:0不要$how = 4; //验证码位数$w = $how*15; //图片宽度$h = 20; //图片高度$fontsize = 5; //字体大小$alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母$number = "023456789"; //验证码内容2:数字$randcode = ""; //验证码字符串初始化srand((double)microtime()*1000000); //初始化随机数种子	$im = ImageCreate($w, $h); //创建验证图片/** 绘制基本框架*/$bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色ImageFill($im, 0, 0, $bgcolor); //填充背景色if($border){    $black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色    ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框}/** 逐位产生随机字符*/for($i=0; $i<$how; $i++){       $alpha_or_number = mt_rand(0, 1); //字母还是数字    $str = $alpha_or_number ? $alpha : $number;    $which = mt_rand(0, strlen($str)-1); //取哪个字符    $code = substr($str, $which, 1); //取字符    $j = !$i ? 4 : $j+15; //绘字符位置    $color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色    ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符    $randcode .= $code; //逐位加入验证码字符串}/** 添加干扰*/for($i=0; $i<5; $i++)//绘背景干扰线{       $color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色    ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线}   for($i=0; $i<$how*40; $i++)//绘背景干扰点{       $color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色     ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点}//把验证码字符串写入sessionsession_start();$_SESSION["usimga"] = $randcode;/*绘图结束*/Imagegif($im);ImageDestroy($im);/*绘图结束*/?> 
登录后复制


回复讨论(解决方案)

代码本身没有问题
请检查是否有 BOM 头

代码本身没有问题
请检查是否有 BOM 头


大神,不懂啊
怎么查看

代码本身没有问题
请检查是否有 BOM 头


查看了,没有bom头
还有其他的可能出问题的地方吗
大神们
求帮助

echo base64_encode(file_get_contents('http://localhost/你的程序文件名'));

贴出结果

echo base64_encode(file_get_contents('http://localhost/你的程序文件名'));

贴出结果



IA0K 运行是这个

不个能!
图片只有3个字节长?

不个能!
图片只有3个字节长?


chrome监控
response 的content-length确实是3
我也不知道哪里有问题
研究了一天了

IA0K 是 空格回车换行 的 base64 编码
如果输出是以 IA0K 开头的话,就表示你的程序开始处有这些字符,请删除
如果是仅有 IA0K 的话,那就是你把程序文件名搞错了

IA0K 是 空格回车换行 的 base64 编码
如果输出是以 IA0K 开头的话,就表示你的程序开始处有这些字符,请删除
如果是仅有 IA0K 的话,那就是你把程序文件名搞错了



<?phpecho base64_encode(file_get_contents('http://www.bz798.com/usimg.php'));?> 
登录后复制


这是站点目录下的testbom.php文件
usimg.php是验证码文件
通过testbom监测 content-length是3
通过站点本身访问 比如刷新验证码 content-length也是3
通过直接访问usming 还是3

IA0K 是 空格回车换行 的 base64 编码
如果输出是以 IA0K 开头的话,就表示你的程序开始处有这些字符,请删除
如果是仅有 IA0K 的话,那就是你把程序文件名搞错了



程序本身应该是没有问题的
因为据说之前的php环境是可以显示的
现在php环境是重新搭建的
可能是php配置的问题
GD是开着的
用的是IIS的FAST-CGI
session-cache是nocache(也许这里有问题,因为chrome会报ERR_CACHE_MISS这样一个错误,大神如果方便的话可以访问一下站点,在netwrok监控里会报一个错误)
别的原因,因为我不懂php,所以也不知道了

IA0K 是 空格回车换行 的 base64 编码
如果输出是以 IA0K 开头的话,就表示你的程序开始处有这些字符,请删除
如果是仅有 IA0K 的话,那就是你把程序文件名搞错了



netwrok监控报的错误是这样的

这个是请求被取消吗?

换个浏览器试试。

有没有大神帮助解决问题

换个浏览器试试。



IE里没有ERR_CACHE_MISS这个错误
但是还有

这个问题没人能解决吗

print_r(get_headers('http://www.bz798.com/usimg.php'));
登录后复制
Array(    [0] => HTTP/1.1 200 OK    [1] => Cache-Control: private, max-age=10800, pre-check=10800    [2] => Content-Type: image/gif    [3] => Expires: Thu, 19 Nov 1981 08:52:00 GMT    [4] => Last-Modified: Sat, 10 Jan 2015 17:55:26 GMT    [5] => Server: Microsoft-IIS/7.5    [6] => X-Powered-By: PHP/5.2.8    [7] => Set-Cookie: PHPSESSID=huf628licrq4t5bdd0mtuor2s6; path=d:\php\phpsession\    [8] => X-Powered-By: ASP.NET    [9] => Date: Sun, 11 Jan 2015 08:19:47 GMT    [10] => Connection: close    [11] => Content-Length: 3)
登录后复制

显然执行的是一个空文件

你把程序换个名字再试一下

还有就是把 
ini_set('display_errors', 'Off');
Header("Content-type: image/gif");
都去掉



Notice:  A session had already been started - ignoring session_start() in D:\web\legou\usimg.php on line 54


用notepad打开你的图片是这样的。
很明显,是session_start()之前有其他输出或者空白。

去掉空白后,图片是正常的:

还有就是session_start()是放在代码的最



Notice:  A session had already been started - ignoring session_start() in D:\web\legou\usimg.php on line 54


用notepad打开你的图片是这样的。
很明显,是session_start()之前有其他输出或者空白。

去掉空白后,图片是正常的:




上面说错了。是由于session_start被重复执行了。关闭错误提示应该就可以了。

另存文件为utf-8无bom头

多谢这么多人指点,我把生成的验证码图片格式改成png,然后就可以了,虽然不知道怎么回事

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

11个最佳PHP URL缩短脚本(免费和高级) 11个最佳PHP URL缩短脚本(免费和高级) Mar 03, 2025 am 10:49 AM

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

Instagram API简介 Instagram API简介 Mar 02, 2025 am 09:32 AM

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

在Laravel中使用Flash会话数据 在Laravel中使用Flash会话数据 Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

构建具有Laravel后端的React应用程序:第2部分,React 构建具有Laravel后端的React应用程序:第2部分,React Mar 04, 2025 am 09:33 AM

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

简化的HTTP响应在Laravel测试中模拟了 简化的HTTP响应在Laravel测试中模拟了 Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

宣布 2025 年 PHP 形势调查 宣布 2025 年 PHP 形势调查 Mar 03, 2025 pm 04:20 PM

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

See all articles