登录 立即注册

首页 > 绿虎论坛 > 建站 > 讨论/求助 (发帖)

标题: gd库生成的图片验证码为啥不显示

作者: @Ta

时间: 2023-03-24

点击: 4055

<?php
session_start();

// 生成随机验证码
function generate_captcha($length = 4) {
    $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $code = '';
    for ($i = 0; $i < $length; $i++) {
        $code .= $chars[mt_rand(0, strlen($chars) - 1)];
    }
    return $code;
}

// 生成图形验证码
function generate_captcha_image($captcha) {
    $width = 100;
    $height = 40;
    $font_size = 20;

    // 创建画布
    $image = imagecreatetruecolor($width, $height);

    // 生成背景色
    $bg_color = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $bg_color);

    // 生成干扰线
    for ($i = 0; $i < 5; $i++) {
        $line_color = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
        imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $line_color);
    }

    // 生成验证码文字
    for ($i = 0; $i < strlen($captcha); $i++) {
        $text_color = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150));
        imagettftext($image, $font_size, mt_rand(-15, 15), 20 + $i * ($font_size + 10), mt_rand($height / 2, $height), $text_color, './arial.ttf', $captcha[$i]);
    }

    // 输出图像
    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
}

// 生成验证码
$captcha = generate_captcha();

// 将验证码保存到SESSION中
$_SESSION['captcha'] = $captcha;

// 生成图形验证码图片并输出
generate_captcha_image($captcha);
?>

这个是chatgpt生成的实例

[隐藏样式|查看源码]


『回复列表(4|隐藏机器人聊天)』

1.

@兲蛋,你有./arial.ttf这个字体吗

(/@Ta/2023-03-24 10:19//)

2. @老虎会游泳,没
(/@Ta/2023-03-24 10:24//)

3.

@兲蛋,你需要放置这个字体

(/@Ta/2023-03-24 10:26//)

4. @老虎会游泳,可以了
(/@Ta/2023-03-24 10:45//)

回复需要登录

5月11日 19:23 星期六

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1