下面这段代码,应该没有问题,因为它在很多机器上运行良好,但在其它机器上却只能显示红色的背景,但imagestring(..)未能将黄色的识别码数字显示出来,望大侠们帮助分析原因:
<?PHP
Header("Content-type: image/PNG");
srand((double)microtime()*1000000); 
while(($AuthNum=rand()%100000)<10000);
session_start();
$_SESSION['AuthNum']=$AuthNum;
srand((double)microtime()*1000000);
$im = imagecreate(58,28); 
$bgColor = ImageColorAllocate($im, 255,0,0); 
$fontColor = ImageColorAllocate($im,255,255,0); 
$gray = ImageColorAllocate($im, 200,200,200); 
$anycolor=ImageColorAllocate($im,0,128,128); 
imagefill($im,68,30,$gray); 
//将四位整数验证码绘入图片 
imagestring($im, 5, 10, 8, $AuthNum, $fontColor);
for($i=0;$i<100;$i++)//加入干扰象素 

  srand((double)microtime()*1000000);
  imagesetpixel($im, rand()%70 , rand()%30 , $fontColor); 
}
ImagePNG($im); 
ImageDestroy($im); 
?> 
在网上也查了很多,大多数是:1.未去掉php.ini中的php_gd2.dll前的分号; 2.复制php_gd2到windows平台的system32下  3.查看phpinfo()看是否支持gd,可以确定的是这些在不能显示识别码的机器上设置都非常正确;另外还有人分析(1)IE设置的安全级别过高 ,(2)在注册表里加入http_accept,(3)[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security]
“BlockXBM“=dword:00000000  
后面二点,没有试,请高手们在帮助分析,是否还有其他原因,谢谢!
(3)

解决方案 »

  1.   

    1)IE设置的安全级别过高 ,(2)查看http_accept是否对图片支持,(3)在注册表里加入[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security] 
    “BlockXBM“=dword:00000000  
    后面二点,没有试,请高手们在帮助分析,是否还有其他原因,谢谢! 
      

  2.   

    谢谢wang_quan_li,但我没有用XBM格式的图片,而且动态生成的PNG图片,因此我考虚没必要写入这行,因为在其他机器上也没有注册呀。
    http_accept的意义是什么?