ThinkPHP5.1验证码功能实现的示例代码


Posted in PHP onJune 08, 2020

۩ 背景

ThinkPHP5.1 已经出现很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。

ThinkPHP5.1验证码功能实现的示例代码

环境

  • 框架版本: ThinkPHP5.1.2
  • 运行环境: CentOS7.2、phpStudy2017、Nginx

♜ 功能开发

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>

ThinkPHP5.1验证码功能实现的示例代码

3). captcha 扩展包代码优化

如果按照上述操作,显示的验证码图片并不能点击刷新,可自己根据需求进行刷新功能设计;或者,建议进行下面的代码优化:

function captcha_img($id = "")
{
 $js_src = "this.src='".captcha_src()."'";
 return '<img src="' . captcha_src($id) . '" title="点击更新验证码" alt="点击更新验证码" οnclick="'.$js_src.'" />';
 //return '![](' . captcha_src($id) . ')';
}

打开 ..\vendor\topthink\think-captcha\src\helper.php 文件,替换上面的 captcha_img() 方法代码.

此时的验证码图片即可实现点击 实时刷新 功能.

【注意:2020-02-26】

最近发现,直接在CSDN上复制上面的代码,“onclick” 粘贴后不是正常的代码,注意 “o”字母,建议有问题时可手打一下即可!

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 请求,以满足用户顺畅的体验.

到此这篇关于ThinkPHP5.1验证码功能实现的示例代码的文章就介绍到这了,更多相关ThinkPHP5.1验证码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
Oct 09 PHP
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php 动态添加记录
Mar 10 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
Dec 17 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 #PHP
CI框架简单分页类用法示例
Jun 06 #PHP
简单的php购物车代码
Jun 05 #PHP
实例化php类时传参的方法分析
Jun 05 #PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 #PHP
PHP预定义接口――Iterator用法示例
Jun 05 #PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
Jun 05 #PHP
You might like
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
Vue父子组件之间的通信实例详解
2018/09/28 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python3解析库BeautifulSoup4的安装配置与基本用法
2018/06/26 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python语音识别实践之百度语音API
2018/08/30 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
十佳大学生事迹材料
2014/01/29 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
爱心助学感谢信
2015/01/21 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
python 算法题——快乐数的多种解法
2021/05/27 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server
Hive导入csv文件示例
2022/06/25 数据库