为何我在本地测试验证码显示正常,到服务器上验证码就不显示了呢。只显示一个红叉号

解决方案 »

  1.   

    <?session_start();
    //生成验证码图片
    Header("Content-type: image/PNG");
    $im = imagecreate(44,18);
    $back = ImageColorAllocate($im, 245,245,245);
    imagefill($im,0,0,$back); //背景
    srand((double)microtime()*1000000);
    //生成4位数字
    for($i=0;$i<4;$i++){
    $font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
    $authnum=rand(0,9);
    $vcodes.=$authnum;
    imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
    }for($i=0;$i<100;$i++) //加入干扰象素

    $randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);

    setcookie("yanz","$vcodes");
    ImagePNG($im);
    ImageDestroy($im);$_SESSION['VCODE'] = $vcodes;?>
      

  2.   

    在第一行加上试试
    ob_end_clean();