ThinkPHP3.2.3验证码显示、刷新、校验 ,具体如下:

显示验证码
首先在Home/Controller下创建一个公共控制器PublicController
<?php
namespace Home\Controller;
use Think\Controller;
use Think\Verify;
class PublicController extends Controller
{
/* 生成验证码 */
public function verify()
{
$config = [
'fontSize' => 19, // 验证码字体大小
'length' => 4, // 验证码位数
'imageH' => 34
];
$Verify = new Verify($config);
$Verify->entry();
}
/* 验证码校验 */
public function check_verify($code, $id = '')
{
$verify = new \Think\Verify();
$res = $verify->check($code, $id);
$this->ajaxReturn($res, 'json');
}
}
verify函数用于生成验证码,config是用来配置显示验证码的属性。该属性有哪些可配置项,可以查看Thinkphp/Library/Think/Verify.class.php文件,此处不再赘述。
check_verify函数用于校验验证码的正确性。模板post用户填写的验证码到该函数,返回$res==true验证通过false验证失败。
前台模板页建立index.html
<div class="">
<label for="j_verify" class="t">验证码:</label> <input id="j_verify"
name="j_verify" type="text" class="form-control x in">
<img id="verify_img" alt="点击更换" title="点击更换"
src="{:U('public/verify',array())}" class="m">
</div>
使用Thinkphp的U方法形成生成验证码的图片。
点击刷新验证码
从上面产生验证码的链接我们可以看出,域名/public/verify即可产生验证码。Thinkphp的验证码生成机制是,如若我们需要产生新的验证码,在该链接后加入一个变量值即可。
我们可以考虑实现public/verify/变量值的形式URL。
$("#verify_img").click(function() {
var verifyURL = "public/verify";
var time = new Date().getTime();
$("#verify_img").attr({
"src" : verifyURL + "/" + time
});
});
利用JS获取当前时间戳加入到URL之后即可。
到此我们即可实现验证码的点击刷新功能。具体表现形式,自己随意哈。
异步校验验证码
大家一定见过在某些网站,我们输入验证码的时候,输入的过程中文本框后面一直显示错误,直到我们输入争取的时候会先提示验证码正确的形式。下面代码就可以实现:
$("#j_verify").keyup(function() {
$.post("public/check_verify", {
code : $("#j_verify").val()
}, function(data) {
if (data == true) {
//验证码输入正确
} else {
//验证码输入错误
}
});
});
利用onekeyup。原理就不需要多讲了吧!
这样我们就可以实现在提交用户名密码之前先进行一次验证码校验,之后表单提交之后再进行一次校验,提升用户体验啦!
还没结束:
当我们采取以上形式实现验证码两次校验的时候,肯定会出现第一次异步校验成功,但是提交表单却提示验证码错误的情况!其实原因还是出在Thinkphp的Verify.class.php上:
以下是该类初始的config配置:
protected $config = array(
'seKey' => 'ThinkPHP.CN', // 验证码加密密钥
'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 验证码字符集合
'expire' => 1800, // 验证码过期时间(s)
'useZh' => false, // 使用中文验证码
'zhSet' => '……此处不粘贴了,太多了!', // 中文验证码字符串
'useImgBg' => false, // 使用背景图片
'fontSize' => 25, // 验证码字体大小(px)
'useCurve' => false, // 是否画混淆曲线
'useNoise' => false, // 是否添加杂点
'imageH' => 0, // 验证码图片高度
'imageW' => 0, // 验证码图片宽度
'length' => 5, // 验证码位数
'fontttf' => '', // 验证码字体,不设置随机获取
'bg' => array(243, 251, 254), // 背景颜色
'reset' => true, // 验证成功后是否重置
);
请大家注意最后一个属性reset 表示的是验证成功后是否重置验证码。相信大家都明白了吧,我们进行第一次校验通过之后,其实该验证码已经失效了,只不过因为我们采取的是异步校验,页面并没有刷新,导致了第二次申请校验的时候和系统产生的已经是不相同的了。所以如果大家喜欢这种两次校验的风格,可以考虑将reset配置为false即可。
好了,基于Thinkphp3.2.3的验证码问题今天就总结到这了。只是大概说了一下实现方法,具体内容还请大家参考TP官方手册。如有错误之处,欢迎大家指出。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# thinkphp
# 验证码刷新
# 验证码
# thinkphp3.2
# ThinkPHP5.1验证码功能实现的示例代码
# ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
# thinkphp5.1验证码及验证码验证功能的实现详解
# tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
# thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
# thinkPHP框架实现的短信接口验证码功能示例
# thinkPHP实现的验证码登录功能示例
# thinkPHP中验证码的简单实现方法
# thinkphp自带验证码全面解析
# Thinkphp极验滑动验证码实现步骤解析
# 的是
# 两次
# 表单
# 就可以
# 好了
# 还没
# 变量值
# 大家都
# 说了
# 如有
# 之处
# 见过
# 请大家
# 我们可以
# 欢迎大家
# 要多
# 可以看出
# 当我们
# 不需
相关文章:
定制建站价位费用解析与套餐推荐全攻略
兔展官网 在线制作,怎样制作微信请帖?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
网站制作话术技巧,网站推广做的好怎么话术?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Bpmn 2.0的XML文件怎么画流程图
Swift中switch语句区间和元组模式匹配
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何在香港免费服务器上快速搭建网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何有效防御Web建站篡改攻击?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
如何快速生成橙子建站落地页链接?
如何撰写建站申请书?关键要点有哪些?
临沂网站制作企业,临沂第三中学官方网站?
焦点电影公司作品,电影焦点结局是什么?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何快速上传建站程序避免常见错误?
网站制作企业,网站的banner和导航栏是指什么?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何挑选高效建站主机与优质域名?
如何快速生成凡客建站的专业级图册?
,怎么在广州志愿者网站注册?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
宝塔建站助手安装配置与建站模板使用全流程解析
建站之星如何优化SEO以实现高效排名?
建站OpenVZ教程与优化策略:配置指南与性能提升
如何在阿里云域名上完成建站全流程?
如何制作网站标识牌,动态网站如何制作(教程)?
建站之星在线客服如何快速接入解答?
动图在线制作网站有哪些,滑动动图图集怎么做?
php json中文编码为null的解决办法
建站上传速度慢?如何优化加速网站加载效率?
创业网站制作流程,创业网站可靠吗?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何批量查询域名的建站时间记录?
如何快速搭建个人网站并优化SEO?
建站之星安装需要哪些步骤及注意事项?
如何用景安虚拟主机手机版绑定域名建站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
建站之星安装失败:服务器环境不兼容?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何通过山东自助建站平台快速注册域名?
c# await 一个已经完成的Task会发生什么
婚礼视频制作网站,学习*后期制作的网站有哪些?
,怎么用自己头像做动态表情包?
如何配置IIS站点权限与局域网访问?
*请认真填写需求信息,我们会在24小时内与您取得联系。