Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp+iis6.0+win2003 验证码乱码

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

WBOY
WBOYOriginal
2016-06-23 13:38:36984Durchsuche


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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn