我的php验证码出现这样的问题:
                         Image corrupt or truncated: http://localhost/htsys/?c=login&m=yzm
无论我怎么调试始终无法正常显示验证码图片,提示图像由于自身原因无法显示......
纠结了

解决方案 »

  1.   

    生成图像的代码没有问题,我换了好多验证码类,还是这样,无语呀,
    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);


    我从路径上面得到一个num的随机字符串然后让yzm函数获取生成,就这么简单,真的不知道为什么,才开始还好好的,
      

  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);