求解手把手叫你做电商网站后台疑难

string.func.php文件代码

<?php

function buildRandomString($type=1,$length=4){

if($type==1){

$chars=join("",range(0,9));

}elseif($type==2){

$chars=join("",array_merge(range("a","z"),range("A","Z")));

}elseif($type==3){

$chars=join("",array_merge(range("a","z"),range("A","Z"),range(0,9)));

}

if ($length>strlen($chars)){

exit("字符串长度不够");

}

$chars=str_shuffle($chars);

return substr($chars,0,$length);

}

?>

image.func.php文件代码

<?php

ob_start();

require_once 'string.func.php';

function verifyImage($type=1,$length=4,$pixel=0,$line=0,$sess_name = "verify"){

session_start();

$width=80;

$height=30;

$image=imagecreatetruecolor($width,$height);

$white=imagecolorallocate($image,255,255,255);

$black=imagecolorallocate($image,0,0,0);

imagefilledrectangle($image,1,1,$width-2,$height-2,$white);

$chars=buildRandomString($type,$length);

$_SESSION [$sess_name] = $chars;

$fontfiles = array ("SIMYOU.TTF","FZSTK.TTF","SIMLI.TTF","STCAIYUN.TTF","STLITI.TTF","STXINGKA.TTF");

for($i=0;$i<$length;$i++){

$size=mt_rand(14,18);

$angle=mt_rand(-15,15);

$x=5+$i*$size;

$y=mt_rand(20,26);

$fontfile = "../fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];

$color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));

$text=substr($chars,$i,1);

imagettftext($image,$size,$angel,$x,$y,$color,$fontfile,$text);

}

if($pixel){

for($i=0;$i<50;$i++){

imagesetpixel($image,mt_rand(0,$width-1),mt_rand(0, $height-1),$black);

}

}

if($line){

for($i=1;$i<$line;$i++){

$color=imagecolorallocate($image,mt_rand(50,90),mt_rand(80,200),mt_rand(90,180));

imageline($image,mt_rand(0,$width-1),mt_rand(0,$height-1),mt_rand(0,$width-1),mt_rand(0,$height-1),$color);

}

}

ob_clean();

header("content-type:image/png");

imagepng($image);

imagedestroy($image);

}

verifyImage();

?>

如上显示正常

去掉verifyImage();这个,然后在getVerify里调用这个函数

getVerify文件代码

<?php 

require_once 'lib/image.func.php';

verifyImage();

?>

http://img.mukewang.com/569655290001c99601010055.jpg就显示一个黑框没有字

LMY默言
浏览 1299回答 1
1回答

乔帮主

string.func.php这个函数你也要调用啊,它就是产生字符的,不调用这个函数的话,就产生不了数字码
打开App,查看更多内容
随时随地看视频慕课网APP