thinkphp verify验证码使用

本文介绍如何在ThinkPHP中使用内置的Verify类来生成验证码,并提供了在页面上显示验证码的方法。此外,还介绍了如何通过JavaScript切换验证码图片实现刷新功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

thinkphp 有内置的verify类,可以直接调用


在显示页面显示验证码


切换verify可以用js 修改src的值+随机数

### ThinkPHP 中实现滑动验证码ThinkPHP框架中集成极验(Geetest)滑动验证码可以显著提升网站的安全性和用户体验。通过引入Geetest SDK并按照官方文档配置,可以在不同页面轻松部署该功能。 #### 配置环境 确保已经安装了Composer工具,在命令行执行以下指令来安装必要的依赖包: ```bash composer require topthink/think-captcha ``` 此操作会自动下载所需的类库文件到项目目录下[^1]。 #### 修改控制器逻辑 编辑对应的Controller文件,比如`Login.php`,加入初始化验证过程所需的数据准备方法: ```php use think\captcha\driver\Geetest; public function initialize() { parent::initialize(); // 初始化 Geetest 对象实例 $this->geetest = new Geetest(config('geetest')); } ``` 定义一个用于处理前端请求的方法,用来获取验证参数并向客户端传递: ```php public function getCaptcha() { try { $result = $this->geetest->getNewCaptcha(); return json([ 'status' => true, 'data' => [ 'gt' => $result['gt'], 'challenge' => $result['challenge'] ] ]); } catch (\Exception $ex) { return json(['status'=>false,'msg'=>$ex->getMessage()]); } } ``` 当用户提交表单时,需增加额外的校验步骤以确认其合法性: ```php public function loginSubmit($username,$password,$_POST) { if (!$this->geetest->check($_POST)) { throw new \Exception("Verification failed"); } // 继续原有业务流程... } ``` #### 更新视图模板 调整HTML部分以便正确加载JavaScript资源以及显示控件本身。参照已有案例中的结构修改相应位置即可满足需求: ```html <!-- 引入SDK --> <script src="https://static.geetest.com/static/tools/gt.js"></script> <div id="embed-captcha"></div> <button type="button" class="btn btn-primary" onclick="onFinish()">完成</button> <script> var handlerEmbed = function (captchaObj) { captchaObj.appendTo("#embed-captcha"); document.querySelector('.btn').addEventListener('click',function(){ captchaObj.verify(); }); }; // 获取验证数据 $.ajax({ url:'/getCaptcha', success:function(res){ initGeetest({ gt: res.data.gt, challenge: res.data.challenge, product:"float", offline:!res.status },handlerEmbed); }, }); </script> ``` 以上即为完整的ThinkPHP环境中集成了极验滑动验证码的过程描述[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值