欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkphp+iis6.0+win2003 验证码乱码

程序员文章站 2024-01-17 21:48:28
...
这个验证码非thinkphp自带的,该网站在本地电脑(win8.1)和其他win2003上正常显示,可传到服务器A就出现这错误
服务器A之前有使用过dz论坛,5.2.17 php版本,这要如何排错?请教,谢谢


回复讨论(解决方案)

在图片输出前加这句
header('content-type:image/gif');

在图片输出前加这句
header('content-type:image/gif');


谢谢,加上后还是同样的错误,是不是php.ini文件设置的原因?
这程序在别的服务器上都正常

echo base64_encode(file_get_contents('验证码程序的url'));
贴出结果

将header那句注释掉报错了没有?

echo base64_encode(file_get_contents('验证码程序的url'));
贴出结果


77u/R0lGODdhMgAWAKEAAN//fWRkZEFodQAAACwAAAAAMgAWAAACloyPqSmy/4CctAIhMcXa+mp8X1c1kylaYZpyF8mqQUyjtHyXJbyL65Wz2IRD0OzUSCaRNg4vs9xMfp6mxvpE+o6jKwmbLVKoQOjGexabP2TtrqgUvrZVHmoYr9N7/PVLPcfG5VeG15GXFmV0JnL3pRhEBQgFBzmCE9Q1eYKZSYSoFCo6SlpqmtWZ4Rm4GuAAAcvwGgtRAAA7

请去掉验证码程序的 BOM 头



至于在别的机器上是正确的,并不能说明什么
你的这个程序在上传到 服务器A之前(后)用记事本做过了编辑

是不是php.ini设置有误?
已经开启extension=php_gd2.dll
图片中的错误我是直接访问index.php?m=Public&a=verify这样的地址出现的乱码,
本机访问这地址时,是显示图片验证码的

请去掉验证码程序的 BOM 头



至于在别的机器上是正确的,并不能说明什么
你的这个程序在上传到 服务器A之前(后)用记事本做过了编辑

刚用UE把index.php、Image.class.php、login.html、PublicAction.class.php都另存为UTF-8 无BOM,还是把这个错。
崩溃

老徐已经说了去掉BOM头 如果不了解什么是BOM头 百度一下

$s = base64_decode('77u/R0lGODdhMgAWAKEAAN//fWRkZEFodQAAACwAAAAAMgAWAAACloyPqSmy/4CctAIhMcXa+mp8X1c1kylaYZpyF8mqQUyjtHyXJbyL65Wz2IRD0OzUSCaRNg4vs9xMfp6mxvpE+o6jKwmbLVKoQOjGexabP2TtrqgUvrZVHmoYr9N7/PVLPcfG5VeG15GXFmV0JnL3pRhEBQgFBzmCE9Q1eYKZSYSoFCo6SlpqmtWZ4Rm4GuAAAcvwGgtRAAA7');echo bin2hex($s);
efbbbf47494638376132001600a10000dfff7d6464644168750000002c00......
这个 efbbbf 就是 utf-8的 BOM 头