ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/6/30 16:13:46
本文主要是介绍ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例讲述了ThinkPHP5.0框架验证码功能实现方法。分享给大家供大家参考,具体如下:
背景
ThinkPHP5.0 已经出现很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。
? 功能开发
1).引入第三方扩展包
进行 TP5 的开发,Composer
的使用会成为重要技能,以 windows 为例子,输入命令:
composer require topthink/think-captcha
完成上述操作,会在以下目录中出现 captcha 的扩展包
..\vendor\topthink\think-captcha
2).前端设置
在前端页面需要显示验证码的位置,补充 {:captcha_img()}
即可,个人代码举例如下:
<p class="pass-form-item"> <label class="pass-label">验证码</label> <input type="text" name="verifyCode" class="pass-text-input " placeholder="请输入验证码"> <div>{:captcha_img()}</div> </p>
3). captcha 扩展包代码优化
如果按照上述操作,显示的验证码图片并不能点击刷新,可自己根据需求进行刷新功能设计;或者,建议进行下面的代码优化:
function captcha_img($id = "") { $js_src = "this.src='".captcha_src()."'"; return '<img src="' . captcha_src($id) . '" title="点击更新验证码" alt="点击更新验证码" onclick="'.$js_src.'" />'; //return '![](' . captcha_src($id) . ')'; }
打开 ..\vendor\topthink\think-captcha\src\helper.php 文件,替换上面的 captcha_img()
方法代码.
此时的验证码图片即可实现点击 实时刷新 功能.
4). 后台代码验证
根据前端请求而来的 verifyCode
数据,调用 helper.php 中的 captcha_check()
方法,进行验证。
if(request()->isPost()){ $data = input('post.'); if(!captcha_check($data['verifyCode'])) { // 校验失败 $this->error('验证码不正确'); } }
? 提示
官方文档—— 【ThinkPHP5.1 验证码指导】
- 建议阅读 ..\vendor\topthink\think-captcha\src\helper.php 文件,及 Captcha.php ,可以进行样式的自定义.
- 如果前端
{:captcha_img()}
有传值 id,那么后台captcha_check()
验证也需要相应的 id 参数区分。 - 验证结果,普遍使用 ajax 请求,以满足用户顺畅的体验.
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
这篇关于ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28怎么把PHP程序打包?-icode9专业技术文章分享
- 2024-09-28怎么用Phar打包PHP程序?-icode9专业技术文章分享
- 2024-09-13手动在github上下载的mfpt包,怎么放到thinkphp5.0框架并正常使用-icode9专业技术文章分享
- 2024-09-05python的<class 'bytearray'>相当于php的哪个数据类型-icode9专业技术文章分享
- 2024-09-05php 导出银行卡号避免科学技术法的方法-icode9专业技术文章分享
- 2024-08-30什么样的php代码质量差被称为垃圾代码-icode9专业技术文章分享
- 2024-08-30用 PHP 调用拼多多的接口以获取订单状态消息的步骤方法和代码示例-icode9专业技术文章分享
- 2024-08-27phpunit单元测试框架的入门和使用方法介绍-icode9专业技术文章分享
- 2024-08-24PHP 中date("w") 周一是多少-icode9专业技术文章分享
- 2024-08-14thinkphp8.0获取域名或主机名方法-icode9专业技术文章分享