Windows+IIS+PHP验证码不显示,Apache+IIS+PHP下是OK的,如何解决。是PHP的配置问题吗?还是程序问题?
<?php
@header("Content-Type:image/png");
session_start();
$_SESSION['authnum'] = '';
$str = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list = explode(",", $str);
for($i=0; $i<4; $i++){
$randnum = rand(0, 60);
$authnum .= $list[$randnum];
}
$_SESSION['authnum'] = strtolower($authnum);
$im = @imagecreate(40, 20) or die("Cant's initialize new GD image stream!");
$text_color = imagecolorallocate($im, 255, 255, 255); //文本顔色
$background_color01 = imagecolorallocate($im, 255, 0, 0); //背景色1
$background_color02 = imagecolorallocatealpha($im, 255, 255, 255, 127); //背景色2
$noise_color = imagecolorallocate($im, 200, 200, 200); //干扰顔色
imagefill($im, 0, 0, $background_color02); //区域填充
imagestring($im, 5, 2, 2, $authnum, $text_color);
/*for($i=0; $i<400; $i++){ //加入干扰象素
imagesetpixel($im, rand()%90 , rand()%30 , $noise_color);
}*/
imagepng($im);
imagedestroy($im);
?>
//asker:www.yuanshi88.com
<?php
@header("Content-Type:image/png");
session_start();
$_SESSION['authnum'] = '';
$str = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
$list = explode(",", $str);
for($i=0; $i<4; $i++){
$randnum = rand(0, 60);
$authnum .= $list[$randnum];
}
$_SESSION['authnum'] = strtolower($authnum);
$im = @imagecreate(40, 20) or die("Cant's initialize new GD image stream!");
$text_color = imagecolorallocate($im, 255, 255, 255); //文本顔色
$background_color01 = imagecolorallocate($im, 255, 0, 0); //背景色1
$background_color02 = imagecolorallocatealpha($im, 255, 255, 255, 127); //背景色2
$noise_color = imagecolorallocate($im, 200, 200, 200); //干扰顔色
imagefill($im, 0, 0, $background_color02); //区域填充
imagestring($im, 5, 2, 2, $authnum, $text_color);
/*for($i=0; $i<400; $i++){ //加入干扰象素
imagesetpixel($im, rand()%90 , rand()%30 , $noise_color);
}*/
imagepng($im);
imagedestroy($im);
?>
//asker:www.yuanshi88.com
还有 Apache+IIS+PHP这是神马组合?
1、网速慢造成的验证码加载失败;
2、本地缓存文件文件夹已满,请清除缓存文件及临时文件;
3、不同的浏览器的不兼容现象造成验证码无法显示;
4、运行 regsvr32 c:\windows\system32\pngfilt.dll 命令,重新注册pngfilt.dll组件;
5、如果以上几种都不是问题,那就有可能是目标服务器设置问题(没有安装相应的图片处理组件,或服务器MITE类型问题)
$background_color02 = imagecolorallocatealpha($im, 255, 255, 255, 127); //背景色2
$noise_color = imagecolorallocate($im, 200, 200, 200); //干扰顔色 全白???
就你的代码而言,在任何服务器配置下,图片都是看不见的。