<?php
session_start();
header("Content-Type: image/jpeg");
$img = imagecreate(50, 20);
$bg = imagecolorallocate($img, 211, 213, 193);
imagefill($img, 0, 0, $bg);
$code = '';
for ($i=0; $i<4; $i++) {
$num = rand(0, 9);
$code .= $num;
$color = imagecolorallocate($img, rand(0,150), rand(0,150), rand(0,150));
$x = ($i+1) * 8;
$y = (rand(0,9) % 2 == 0) ? 4 : 2; // 隨機上下抖動
imagechar($img, 5, $x, $y, $num, $color);
}
$_SESSION['valid'] = $code; // 存入 Session 供後續驗證
imagejpeg($img);
imagedestroy($img);
?>
<img src="captcha.php" id="captchaImg" onclick="this.src='captcha.php?'+Math.random()" />
<input type="text" name="captcha_input" />
<?php
session_start();
if (strtolower($_POST['captcha_input']) == strtolower($_SESSION['valid'])) {
echo "驗證通過";
} else {
echo "驗證碼錯誤";
}
?>
imagecreatetruecolor 獲得更佳畫質gregwar/captcha)此範例展示最基礎的驗證碼生成邏輯,適合學習 GD 函式庫運作原理;生產環境建議採用更健全的方案。