首页  >  问答  >  正文

PHP编写验证码时,在线代码编辑器能够显示,放在本地网站上就乱码了?

<?php

  

   check_code();

   

  //随机生成验证码的字符或数字

   function check_code($width=100, $height=50,$num=4, $type='jpeg')

   {

       $i=imagecreate($width,$height);

       $string='';

       for($j=0;$j<$num;$j++)

       {

           $rand=mt_rand(0,2);

           switch($rand)

           {

              case 0:

               $ascii=mt_rand(48,57);

               break;

            case 1:

               $ascii=mt_rand(65,90);

               break;

            case 2:

               $ascii=mt_rand(97,122);

               break; 

           }

       $string.=sprintf('%c' ,$ascii);//ascii字符解码

       }

   

//生成验证码背景颜色(randbg():函数调用)

   

imagefilledrectangle($i,0,0,$width,$height,randbg($i));


//生成随机干扰(randpix():函数调用)


for($j=0;$j<50;$j++)

{

  imagesetpixel($i,mt_rand(0,$width),mt_rand(0,$height) ,randpix($i));

}


//写字

for($j=0;$j<$num;$j++)

{

    $x=floor($width/$num)*$j+2;

    $y=mt_rand(3,$height-15);

    

    imagechar($i,5,$x,$y,$string[$j],randpix($i));

}


//图片格式


    $fuc='image'.$type;

    $have='cotent-type:image'.$type;

    if(function_exists($fuc))

    {

        header($have);

        $fuc($i);

    }

    else

    {

        echo '不支持图片类型';

    }

    imagedestroy($i);

    return $string;

}

  

//背景颜色函数功能模块  

   function randbg($i)

   {

       return imagecolorallocate($i,mt_rand(135,255) ,mt_rand(135,255),mt_rand(135,255));

       

   }

//干扰元素或字符颜色函数功能模块  

   function randpix($i)

   {

       return imagecolorallocate($i,mt_rand(0,135) ,mt_rand(0,135),mt_rand(0,135));

       

   }   

?>


phpcn_u53259phpcn_u532592510 天前1175

全部回复(9)我来回复

  • 路过

    路过2017-11-08 13:48:01

    嗯嗯


    回复
    0
  • 路过

    路过2017-11-07 08:14:54

    贴出报错信息啊,谁有功夫看你代码???

    回复
    0
  • phpcn_u53259

    就是乱码了,什么报错都没有。应该是//图片格式//出错了。

    phpcn_u53259 · 2017-11-07 17:38:05
    phpcn_u53259

    早就试过了,一样乱码

    phpcn_u53259 · 2017-11-08 09:42:13
    phpcn_u53259

    文件名?这里面没有写文件名进去的语句야

    phpcn_u53259 · 2017-11-08 10:29:07
    phpcn_u53259

    好的,谢谢~

    phpcn_u53259 · 2017-11-08 14:05:56
    路过

    哦,你加个header头声明utf-8 试试吧

    路过 · 2017-11-08 08:19:59
    路过

    看看你的文件名是不是错了

    路过 · 2017-11-08 10:21:41
    路过

    你代码有问题

    路过 · 2017-11-08 13:45:45
  • 取消回复