我的php验证码出现这样的问题:
Image corrupt or truncated: http://localhost/htsys/?c=login&m=yzm
无论我怎么调试始终无法正常显示验证码图片,提示图像由于自身原因无法显示......
纠结了
尝试1.图像路径问题,改绝对路径,或者在相同的路径下放一张静态图,如果能显示则排除。
尝试2.图像编码,是否是生成时有问题,生成图像的代码,一行一行的调试。
生成图像的代码没有问题,我换了好多验证码类,还是这样,无语呀,
public function yzm(){ //登录页面验证码的方法 header("content-type:image/png"); $num = $_GET['num']; $imagewidth=50; $imageheight=20; $numimage = imagecreate($imagewidth,$imageheight); imagecolorallocate($numimage,238,97,85); for($i=0;$i<strlen($num);$i++){ $x = mt_rand(1,8)+$imagewidth*$i/4; $y = mt_rand(1,$imageheight/4); $color=imagecolorallocate($numimage,mt_rand(0,90),mt_rand(0,80),mt_rand(0,120)); imagestring($numimage,5,$x,$y,$num[$i],$color); } for($i=0;$i<200;$i++){ $randcolor=imagecolorallocate($numimage,rand(200,255),rand(180,255),rand(240,255)); imagesetpixel($numimage,rand()%70,rand()%20,$randcolor); } imagepng($numimage); imagedestroy($numimage); }
public function yzm(){ header("content-type:image/png"); $num = $_GET['num']; $imagewidth=50; $imageheight=20; $numimage = imagecreate($imagewidth,$imageheight); imagecolorallocate($numimage,238,97,85); for($i=0;$i<strlen($num);$i++){ $x = mt_rand(1,8)+$imagewidth*$i/4; $y = mt_rand(1,$imageheight/4); $color=imagecolorallocate($numimage,mt_rand(0,90),mt_rand(0,80),mt_rand(0,120)); imagestring($numimage,5,$x,$y,$num[$i],$color); } for($i=0;$i<200;$i++){ $randcolor=imagecolorallocate($numimage,rand(200,255),rand(180,255),rand(240,255)); imagesetpixel($numimage,rand()%70,rand()%20,$randcolor); } imagepng($numimage); imagedestroy($numimage); }
这样的问题太假了,终于解决了,但是我还不知道究竟是哪的问题
这样的问题 很大的原因是 在输出的前面出现了 空白输出