验证码集成与验证支持模板调用、一行校验、验证器规则、多标识共存及集中配置:{:captcha_img()}自带刷新,captcha_check()自动比对并清空,'captcha'规则内置提示,多验证码需传标识如'login',推荐在captcha.php中统一配置length、expire等参数。

一、快速集成验证码显示
模板中直接调用助手函数最省事:{:captcha_img()} 或 <img src="%7B:captcha_src()%7D">。两者效果一致,前者自带点击刷新逻辑,后者更灵活,适合需要自定义事件的场景。注意:必须确保 Session 已启用,否则无法生成或校验。
二、一行代码完成验证判断
提交表单后,无需实例化类,直接用助手函数:if (!captcha_check(input('post.code'))) { ... }。该函数自动读取 Session 中存储的验证码值并比对,大小写敏感,且会自动清空已使用过的验证码(防重放)。
三、验证器规则一键嵌入
在 Validate 类或控制器中使用规则字符串即可:'code|验证码' => 'require|captcha'。框架底层调用的就是 captcha_check(),失败时自动返回默认提示语“验证码不正确”。若需自定义错误信息,可配合 message() 方法设置。
四、多验证码共存与标识管理
同一页面需多个验证码(如登录+注册并存),不能共用默认 session key。解决方式是传入唯一标识:{:captcha_img('login')} 和 {:captcha_img('reg')};后端验证时也需带标识:captcha_check($code, 'login')。对应地,Captcha 实例化时也可传参:new Captcha(['id' => 'login'])。
五、关键配置集中管理
推荐在 config/extra/captcha.php 中统一维护参数,避免硬编码。常用配置包括:
- length:设为 4 或 5,兼顾识别率与安全性
- expire:建议 1800(30分钟),防止长时间有效被复用
- useNoise / useCurve:设为 true,增加 OCR 识别难度
- fontSize / imageW / imageH:按 UI 需求微调,避免过小或变形
- useZh:开启中文验证码需同时配 zhSet 字符串,注意字体文件支持
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











