为了账号安全,请及时绑定邮箱和手机立即绑定

验证码数字不显示

<?phprequire_once 'string.func.php';header("content-type:image/gif");//通过GD库做验证码//创建画布function verifyImage($type=3, $length=4,$sess_name = "verify"){    session_start();    $width = 80;    $height = 28;    $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);    // $type = 1;    //$length = 4;    $chars = buildRandomString($type, $length);    $fontfiles = array("dutch.ttf", "dutchb.ttf", "dutchbi.ttf", "dutcheb.ttf", "dutchi.ttf", "tt0524m_.ttf", "tt0586m_.ttf", "tt1018m_.ttf");    $_SESSION[$sess_name] = $chars;    for ($i = 9; $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, $angle, $x, $y, $color, $fontfile, $text);    }    $pixel = 10;    if ($pixel) {        for ($i = 0; $i < 50; $i++) {            imagesetpixel($image, mt_rand(0, $width - 1), mt_rand(0, $height - 1), $black);        }    }    $line = true;    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);        }    }    imagegif($image);    imagedestroy($image);}


<?phpfunction 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);}


这是什么问题,一模一样的代码,为什么不显示数字呢?

正在回答

2 回答

自己找到了问题所在,

imagettftext()中的$fontfile必须要用绝对路径,从盘符开始全部补齐就可以了

$fontfile = "D:/phpstudy_pro/WWW/myphp/admin/fonts/".$fontfiles[mt_rand(0,count($fontfiles)-1)];

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117325    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

验证码数字不显示

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信