thinkphp5添加验证码需三步:选对扩展包版本(tp5.0用1.,5.1+用2.)、执行php think captcha:install初始化、模板用{:captcha_img()}显示且控制器用captcha类check()验证,并确保session已启用。

ThinkPHP5项目要加验证码,核心就三步:选对扩展包版本、用Composer装好、再在模板和控制器里调用。别跳步骤,尤其Session没开,验证码永远校验失败。
确认TP5具体小版本再选扩展包
TP5不是铁板一块,5.0和5.1+对验证码包要求完全不同:
- TP5.0必须用1.*版:执行
composer require topthink/think-captcha=1.* - TP5.1及以上(含5.1.x、5.2等)用2.*版:执行
composer require topthink/think-captcha=2.* - 不确定版本?进项目根目录运行
php think version,或打开thinkphp/library/think/Env.php看VERSION常量
安装后必须运行初始化命令
光装包不行,前端JS/CSS和配置文件不会自动复制。进入项目根目录,立即执行:
php think captcha:install- 检查是否生成了
config/captcha.php配置文件 - 确认
public/static/captcha/下有captcha.js、captcha.css和images/目录 - 如果命令报错“command not found”,说明服务提供者没注册——手动检查
config/app.php中providers数组是否包含\think\captcha\CaptchaServiceProvider::class
模板显示与控制器验证写法
前端显示推荐用门面方式,简洁可靠:
- 模板里写:
{:captcha_img()}或<img src="%7B:captcha_src()%7D" onclick="this.src='{:captcha_src()}?'+Math.random()"> - 控制器里验证不能只靠input(),必须实例化Captcha对象再check:
$captcha = new \think\captcha\Captcha();if (!$captcha->check(input('captcha'))) { // 验证失败 };- 注意:Session中间件必须启用,否则
check()恒返回false——检查app/middleware.php是否开启SessionInit
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











