PHP編寫驗證碼時,線上程式碼編輯器能夠顯示,放在本地網站上就亂碼了?
phpcn_u53259
phpcn_u53259 2017-11-06 13:50:30
0
9
1154

check_code();

//隨機產生驗證碼的字元或數字

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

{

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

$string='';

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

{## #. =mt_rand(0,2);

switch($rand)

{

$ {

ascii=mt_rand(48,57) ;

break;

case 1:

_ break;

case 2 :

$ascii=mt_rand(97,122);

#; ing.=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

#o }

# else

#

# echo '不支持圖片類型';

}

imagedestroy($i);

return $string;

}

//背景顏色函數功能模組

function randbg($i)

{

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

}

//幹擾元素或字元顏色函數功能模組

function randpix($i)

{

## randpix($i)

{

## color return image,colorallocate($i,mt_rand(0,135) color return image,colorallocate($i,mt_rand(0,135) color return_mtallocate($i,mt_rand(0,135) color return_mt. (0,135),mt_rand(0,135));

}

#?>

################?>######################?>######################?>#############
phpcn_u53259
phpcn_u53259

全部回覆 (2)
路过
这是个验证码类,你可以参考一下 width = $width; $this->height = $height; $this->codeNum = $codeNum; } function showImg() { //创建图片 $this->createImg(); //设置干扰元素 $this->setDisturb(); //设置验证码 $this->setCaptcha(); //输出图片 $this->outputImg(); } function getCaptcha() { return $this->code; } private function createImg() { $this->im = imagecreatetruecolor($this->width, $this->height); $bgColor = imagecolorallocate($this->im, 0, 0, 0); imagefill($this->im, 0, 0, $bgColor); } private function setDisturb() { $area = ($this->width * $this->height) / 20; $disturbNum = ($area > 250) ? 250 : $area; //加入点干扰 for ($i = 0; $i < $disturbNum; $i++) { $color = imagecolorallocate($this->im, rand(0, 255), rand(0, 255), rand(0, 255)); imagesetpixel($this->im, rand(1, $this->width - 2), rand(1, $this->height - 2), $color); } //加入弧线 for ($i = 0; $i <= 5; $i++) { $color = imagecolorallocate($this->im, rand(128, 255), rand(125, 255), rand(100, 255)); imagearc($this->im, rand(0, $this->width), rand(0, $this->height), rand(30, 300), rand(20, 200), 50, 30, $color); } } private function createCode() { $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKMNPQRSTUVWXYZ"; for ($i = 0; $i < $this->codeNum; $i++) { $this->code .= $str{rand(0, strlen($str) - 1)}; } } private function setCaptcha() { $this->createCode(); for ($i = 0; $i < $this->codeNum; $i++) { $color = imagecolorallocate($this->im, rand(50, 250), rand(100, 250), rand(128, 250)); $size = rand(floor($this->height / 5), floor($this->height / 3)); $x = floor($this->width / $this->codeNum) * $i + 5; $y = rand(0, $this->height - 20); imagechar($this->im, $size, $x, $y, $this->code{$i}, $color); } } private function outputImg() { if (imagetypes() & IMG_JPG) { header('Content-type:image/jpeg'); imagejpeg($this->im); } elseif (imagetypes() & IMG_GIF) { header('Content-type: image/gif'); imagegif($this->im); } elseif (imagetype() & IMG_PNG) { header('Content-type: image/png'); imagepng($this->im); } else { die("Don't support image type!"); } } } // 这样调用 新建文件 showImg();


#
    路过

    貼出報錯訊息啊,誰有功夫看你程式碼? ? ?

    • 回覆 就是亂碼了,什麼報錯都沒有。應該是//圖片格式//出錯了。
      phpcn_u53259 作者 2017-11-07 17:38:05
    • 回覆 早就試過了,一樣亂碼
      phpcn_u53259 作者 2017-11-08 09:42:13
    • 回覆 檔案名稱?這裡面沒有寫檔名進去的語句야
      phpcn_u53259 作者 2017-11-08 10:29:07
    • 回覆 好的,謝謝~
      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
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!