代码示例

生成验证码
use app\common\service\CaptchaService; // 生成验证码图片(返回 Response 对象) $captcha = new CaptchaService(); return $captcha->generate(90, 32); // 参数: 宽度, 高度(默认90x32) // 生成4位随机数字验证码,存入 Session // Session key: 'captcha_code'
验证码校验
$captcha = new CaptchaService(); // 验证用户输入 $result = $captcha->verify($code); if ($result) { // 验证通过,Session 中的验证码自动删除 // 防止重复使用 } else { // 验证失败 }
在登录表单中使用
// 控制器中生成验证码 public function captcha() { $captcha = new CaptchaService(); return $captcha->generate(); } // 控制器中验证 public function login() { $captcha = new CaptchaService(); if (!$captcha->verify(input('captcha'))) { return '验证码错误'; } // 继续登录逻辑... }

CaptchaService 说明

验证码流程

1. 前端请求验证码图片 → generate() 生成4位数字验证码

2. 验证码值存入 Session(key: captcha_code

3. 用户提交表单时输入验证码

4. 后端调用 verify() 校验,成功后自动删除 Session

技术实现

• 使用 GD 库绘制验证码图片

• 4位随机数字,带干扰线和噪点

• 验证通过后立即删除 Session 中的验证码,防止重复使用