安装配置PHP验证码需先确保PHP版本≥5.6、启用GD库并支持session;创建captcha.php生成含随机4位数的图像,存储至session;在表单中嵌入验证码图片与输入框,并通过check.php比对输入与session值,一致则通过验证,随后清除session以增强安全。

安装和配置PHP图像验证码(CAPTCHA)是防止机器人自动提交表单的重要手段。通过生成随机的图形验证码,可以有效识别并阻挡自动化脚本。以下是完整的验证码生成与防机器人配置方法。
在开始前,请确保服务器满足以下条件:
检查GD库是否启用,可通过创建一个phpinfo()页面查看。若未开启,在php.ini中取消注释:
extension=gd,然后重启Web服务。
新建一个名为captcha.php的文件,用于生成图像验证码:
立即学习“PHP免费学习笔记(深入)”;
代码示例:
<?php
// 启动会话
session_start();
// 设置图像尺寸
$width = 120;
$height = 40;
// 创建画布
$image = imagecreate($width, $height);
$bgColor = imagecolorallocate($image, 220, 220, 220); // 背景色
$textColor = imagecolorallocate($image, 0, 0, 0); // 文字颜色
// 生成随机验证码文本(4位数字)
$captchaText = rand(1000, 9999);
// 将验证码存入session
$_SESSION['captcha'] = $captchaText;
// 添加干扰点
for ($i = 0; $i < 50; $i++) {
$dotColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
imagesetpixel($image, rand(0, $width), rand(0, $height), $dotColor);
}
// 写入验证码文字(可选:使用字体文件提升安全性)
imagestring($image, 5, 40, 12, $captchaText, $textColor);
// 输出图像
header("Content-type: image/png");
imagepng($image);
// 释放内存
imagedestroy($image);
?>
将此文件部署到网站目录,访问它将显示一张包含4位数字的图片。
本书图文并茂,详细讲解了使用LAMP(PHP)脚本语言开发动态Web程序的方法,如架设WAMP平台,安装与配置开源Moodle平台,PHP程序设计技术,开发用户注册与验证模块,架设LAMP平台。 本书适合计算机及其相关专业本、专科学生作为学习LAMP(PHP)程序设计或动态Web编程的教材使用,也适合对动态Web编程感兴趣的读者自觉使用,对LAMP(PHP)程序设计人员也具有一定的参考价值。
713
在登录或注册表单中嵌入验证码图片和输入框:
<html>
<body>
<form method="post" action="check.php">
用户名:<input type="text" name="username" /><br/>
验证码:<input type="text" name="captcha" />
<img src="captcha.php" alt="验证码" onclick="this.src='captcha.php?'+Math.random()" style="cursor:pointer;" />
<br/>
<input type="submit" value="提交" />
</form>
</body>
</html>
注意:onclick事件让用户点击图片时刷新验证码,Math.random()防止浏览器缓存。
创建check.php处理表单提交并验证验证码:
<?php
session_start();
if ($_POST['captcha'] == $_SESSION['captcha']) {
echo "验证通过,欢迎访问!";
// 继续处理登录或其他逻辑
} else {
echo "验证码错误,请重试。";
}
?>
验证完成后,建议立即清除session中的验证码值以增强安全性:
unset($_SESSION['captcha']);
基本上就这些。只要保证图像难以被OCR识别,并结合session机制,就能实现基本的防机器人功能。进阶方案可考虑添加扭曲、线条干扰或使用第三方库如Gregwar/Captcha来提升安全级别。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号