<?php
/**
 * 芋头CMS
 * ============================================================================
 * 版权所有 2016-2028 沅陵县乌托邦网络服务有限公司，并保留所有权利。
 * 网站地址: http://www.yutoucms.cn
 * ----------------------------------------------------------------------------
 * 如果商业用途务必到官方购买正版授权, 以免引起不必要的法律纠纷.
 * ============================================================================
 * Author: 芋头 <mxgsf@qq.com>
 * Date: 2026-5-20
 */


session_start();

// 检查GD库
if (!function_exists('imagecreate')) {
    // GD库不可用，返回错误图片
    header('Content-Type: image/png');
    $img = imagecreate(80, 30);
    $bg = imagecolorallocate($img, 200, 200, 200);
    $text = imagecolorallocate($img, 0, 0, 0);
    imagestring($img, 3, 5, 8, 'NO GD', $text);
    imagepng($img);
    imagedestroy($img);
    exit;
}

// 生成验证码字符
$chars = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789';
$code = '';
$length = 4;
for ($i = 0; $i < $length; $i++) {
    $code .= $chars[mt_rand(0, strlen($chars) - 1)];
}

// 存入session
$_SESSION['captcha'] = strtolower($code);

// 图片尺寸
$width = 100;
$height = 36;

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

// 背景色（浅灰）
$bgColor = imagecolorallocate($image, 230, 230, 230);
// 文字色（深灰）
$textColor = imagecolorallocate($image, 50, 50, 50);
// 干扰线色
$lineColor = imagecolorallocate($image, 180, 180, 180);

// 填充背景
imagefill($image, 0, 0, $bgColor);

// 画干扰线
for ($i = 0; $i < 3; $i++) {
    imageline($image,
        mt_rand(0, $width * 0.3), mt_rand(0, $height),
        mt_rand($width * 0.7, $width), mt_rand(0, $height),
        $lineColor);
}

// 写入文字
$fontSize = 5;
$startX = 10;
$startY = ($height - imagefontheight($fontSize)) / 2;

for ($i = 0; $i < $length; $i++) {
    $charX = $startX + $i * 22 + mt_rand(-2, 2);
    imagestring($image, $fontSize, $charX, $startY, $code[$i], $textColor);
}

// 输出
header('Content-Type: image/png');
header('Cache-Control: no-store, no-cache, must-revalidate');
imagepng($image);
imagedestroy($image);