🗣 Wd提问: PHP源码算术验证码
🤖 Ai回答: 在 PHP 中实现一个简单的算术验证码(Arithmetic CAPTCHA)功能,可以用于防止机器人提交表单。下面是一个完整的示例,包括生成随机算术表达式、计算结果并验证用户输入。
✅ 功能说明
生成两个随机数字(如 5 和 3)
随机选择运算符(+、-、*)
显示表达式给用户(如 “5 + 3 = ?”)
将正确答案存入 Session
用户提交后比对答案
✅ 完整 PHP 源码
php
<?php
session_start();
// 生成算术验证码
function generateCaptcha() {
$num1 = rand(1, 10);
$num2 = rand(1, 10);
$operators = ['+', '-', '*'];
$operator = $operators[array_rand($operators)];
// 构建表达式并计算结果
switch ($operator) {
case '+':
$result = $num1 + $num2;
break;
case '-':
$result = $num1 $num2;
break;
case '*':
$result = $num1 * $num2;
break;
}
// 存入 Session
$_SESSION['captcha_result'] = $result;
$_SESSION['captcha_time'] = time(); // 可选:设置过期时间
// 返回表达式字符串
return $num1 $operator $num2;
}
// 检查验证码是否正确
function checkCaptcha($userInput) {
// 可选:设置验证码5分钟过期
if (!isset($_SESSION['captcha_time']) time() $_SESSION['captcha_time'] 300) {
return false;
}
if (isset($_SESSION['captcha_result'])) {
$correct = $_SESSION['captcha_result'];
// 清除验证码,防止重复使用
unset($_SESSION['captcha_result']);
unset($_SESSION['captcha_time']);
return $correct == (int)$userInput;
}
return false;
}
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$userAnswer = $_POST['captcha_answer'] ?? '';
if (checkCaptcha($userAnswer)) {
echo <p style='color: green;'✅ 验证码正确!表单提交成功。</p;
} else {
echo <p style='color: red;'❌ 验证码错误或已过期,请重试。</p;
// 重新生成新验证码
$captchaExpr = generateCaptcha();
}
} else {
// 初始页面加载时生成验证码
$captchaExpr = generateCaptcha();
}
?
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8
<title算术验证码示例</title
</head
<body
<h2算术验证码测试</h2
<form method=post
<p
<strong请输入以下算式的结果:</strong<br
<span style=font-size: 1.2em; color: blue;<?php echo $captchaExpr; ? = ?</span
</p
<p
<label答案:<input type=number name=captcha_answer required</label
</p
<button type=submit提交</button
</form
</body
</html
✅ 功能特点
使用 `session` 存储正确答案
支持 `+`、`-`、`*` 三种运算
验证码一次有效(提交后清除)
可设置过期时间(如 5 分钟)
简单安全,防止简单爬虫
✅ 安全建议(可选增强)
添加图形化显示(用 GD 库绘制扭曲文字)
增加干扰线/背景噪点(图形验证码)
记录尝试次数,防止暴力破解
结合其他验证方式(如时间限制)
✅ 示例输出
页面显示:
请输入以下算式的结果:
7 + 3 = ?
答案:[输入框]
[提交按钮]
如果你希望升级为图形验证码(图片形式),也可以使用 PHP GD 库绘制,我可以继续提供代码。
需要吗? 😊
📣 商家广告:





0
IP地址: 60.63.139.250
搜索次数: 0
提问时间: 2025-11-10 08:09:56
🛒 域名购买:
3.ln.cn
s-k.com.cn
67.gs
gwgh.cn
tc.gs
ltkj.net
9.gz.cn
02.gs
ftp.gs
363.net.cn
❓️ 热门提问:
永久域名购买
idc工程师
站群系统谷歌惩罚
真正的挂机赚app
ipv4dns服务器
多线程服务器 租
服务器 电源
跳失率广告投放代理
盲板机柜
pip 服务器
豌豆Ai站群搜索引擎系统
🌐 域名评估:
qhun.cn
x-i.com.cn
ng.cx
az.cq.cn
bb.yn.cn
ftp.gs
lmvu.cn
epvy.cn
lquw.cn
hqie.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
广州番禺月饼厂
站搜
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。