在PHP中,生成验证码的代码通常涉及到以下几个步骤。创建一个随机的验证码字符串,将其显示在图像上,然后将验证码存储在会话中以供后续验证。以下是一个简单的示例代码,展示了如何在PHP中生成验证码。
确保你的PHP环境已经安装了GD库,因为我们将使用它来创建图像。

1、创建一个生成验证码的图像的函数:
function generate_captcha($width = 200, $height = 80) {
// 创建画布和背景颜色
$image = imagecreatetruecolor($width, $height);
$bgColor = imagecolorallocate($image, 255, 255, 255); // 白色背景
$textColor = imagecolorallocate($image, 0, 0, 0); // 黑色文字
// 生成随机验证码字符串并保存到会话中
$captchaText = ’’;
$chars = ’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’; // 可选的字符集
for ($i = 0; $i < 6; $i++) { // 生成长度为6的验证码字符串
$captchaText .= $chars[rand(0, strlen($chars) - 1)];
}
$_SESSION[’captcha’] = $captchaText; // 存储验证码到会话中供后续验证使用
// 在图像上绘制验证码字符串
imagestring($image, 5, 10, 10, $captchaText, $textColor); // 在图像上写入验证码文本
// 输出图像并销毁会话中的验证码(防止再次访问)
header("Content-type: image/png"); // 设置输出类型为PNG图像
imagepng($image); // 输出图像内容到浏览器或文件头中
imagedestroy($image); // 销毁图像资源以释放内存空间
}2、在你的表单页面中调用该函数以生成验证码图像:
在HTML表单中添加一个用于显示验证码的图像和一个输入框供用户输入验证码。

<!DOCTYPE html>
<html>
<head>
<title>验证码示例</title>
</head>
<body>
<form action="submit_form.php" method="post">
<!-- 显示验证码图像 -->
<img src="https://www.qq959.com/static/image/lazy.gif" class="lazy" original="https://www.qq959.com/static/image/nopic320.png" alt="验证码"> <!-- captcha.php是调用上述函数的文件 -->
<!-- 输入框供用户输入验证码 -->
<input type="text" name="captchaInput" placeholder="请输入验证码"> <!-- 用户输入的验证码将发送到submit_form.php进行验证 -->
<!-- 其他表单字段 -->
<!-- ... -->
<input type="submit" value="提交"> <!-- 表单提交按钮 -->
</form>
</body>
</html>在上述示例中,当用户访问表单页面时,会调用captcha.php文件生成一个验证码图像并显示在表单上,用户输入验证码后,表单数据将被提交到另一个PHP文件(例如submit_form.php),在该文件中可以验证用户输入的验证码是否与会话中存储的验证码匹配,如果匹配,则允许用户继续操作;否则,拒绝请求并提示用户重新输入正确的验证码。





