Home  >  Article  >  Backend Development  >  thinkphp+iis6.0+win2003 验证码乱码

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

WBOY
WBOYOriginal
2016-06-23 13:38:36983browse


这个验证码非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 头

<?php$s = base64_decode('77u/R0lGODdhMgAWAKEAAN//fWRkZEFodQAAACwAAAAAMgAWAAACloyPqSmy/4CctAIhMcXa+mp8X1c1kylaYZpyF8mqQUyjtHyXJbyL65Wz2IRD0OzUSCaRNg4vs9xMfp6mxvpE+o6jKwmbLVKoQOjGexabP2TtrqgUvrZVHmoYr9N7/PVLPcfG5VeG15GXFmV0JnL3pRhEBQgFBzmCE9Q1eYKZSYSoFCo6SlpqmtWZ4Rm4GuAAAcvwGgtRAAA7');echo substr($s, 3);


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

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

请去掉验证码程序的 BOM 头

<?php$s = base64_decode('77u/R0lGODdhMgAWAKEAAN//fWRkZEFodQAAACwAAAAAMgAWAAACloyPqSmy/4CctAIhMcXa+mp8X1c1kylaYZpyF8mqQUyjtHyXJbyL65Wz2IRD0OzUSCaRNg4vs9xMfp6mxvpE+o6jKwmbLVKoQOjGexabP2TtrqgUvrZVHmoYr9N7/PVLPcfG5VeG15GXFmV0JnL3pRhEBQgFBzmCE9Q1eYKZSYSoFCo6SlpqmtWZ4Rm4GuAAAcvwGgtRAAA7');echo substr($s, 3);


至于在别的机器上是正确的,并不能说明什么
你的这个程序在上传到 服务器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 头

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn