thinkphp验证码的实现(form、ajax实现验证)


Posted in PHP onJuly 28, 2016

两种验证码验证实现,一种直接在form表单提交按钮实现验证,一种使用ajax传递参数实现验证:

1、直接在form表单提交按钮实现验证,在控制器VerifyController.class.php中写入如下代码:

namespace Home\Controller;
use Think\Controller;
class VerifyController extends Controller {
public function index() {
$this->display();
}
public function checkLogin() {
$verify=new \Think\Verify();
$code=I('post.verify');//表单验证码
if($verify->check($code)){
$this->success('验证码正确');
}else{
$this->error('验证码错误');
}
}
public function verify()
{
// 实例化Verify对象
$verify = new \Think\Verify();
// 配置验证码参数
$verify->fontSize = 14; // 验证码字体大小
$verify->length = 4; // 验证码位数
$verify->imageH = 34; // 验证码高度
$verify->useImgBg = true; // 开启验证码背景
$verify->useNoise = false; // 关闭验证码干扰杂点
$verify->entry();
}
}

在视图Verify/index.html中的代码如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="{:U('verify/checkLogin')}" method="post">
<div class="form-group has-feedback">
<input type="text" name="verify" id="verify" placeholder="验证码" style="width:100px;" />
<span style="right:120px;"></span>
<img class="verify" src="{:U(verify)}" alt="验证码" onClick="this.src=this.src+'?'+Math.random()" />
</div>
<div class="col-xs-4">
<button type="submit" >验证</button>
</div>
</form>
</body>
</html>

2、使用ajax传递参数实现验证,在控制器VerifyController.class.php中的代码如下:

namespace Home\Controller;
use Think\Controller;
class VerifyController extends Controller {
public function index() {
$this->display();
}
public function checkLogin() {
$verify=new \Think\Verify();
$code=$_POST['code'];//ajax验证码获取
if($verify->check($code)){
$this->ajaxReturn(1);
}else{
$this->ajaxReturn(0);
}
}
public function verify()
{
// 实例化Verify对象
$verify = new \Think\Verify();
// 配置验证码参数
$verify->fontSize = 14; // 验证码字体大小
$verify->length = 4; // 验证码位数
$verify->imageH = 34; // 验证码高度
$verify->useImgBg = true; // 开启验证码背景
$verify->useNoise = false; // 关闭验证码干扰杂点
$verify->entry();
}
}

视图Verify/index.html中的代码如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="__JS__/jquery-2.1.0.min.js" ></script>
</head>
<body>
<form action="{:U('verify/checkLogin')}" method="post">
<div class="form-group has-feedback">
<input type="text" name="verify" id="verify" placeholder="验证码" style="width:100px;" />
<span style="right:120px;"></span>
<img class="verify" src="{:U(verify)}" alt="验证码" onClick="this.src=this.src+'?'+Math.random()" />
</div>
<div class="col-xs-4">
<button type="button" id="ver">验证</button>
</div>
</form>
<script>
$(document).ready(function(){
/*ajax验证码*/
$("#ver").click(function(){
var code=$("#verify").val();//获取输入验证码
var url=$('form').attr('action');//获取表单action的值
$.ajax({
type:"post",
url:url,
data:{"code":code},
error:function(request){
alert("ajax错误");
},
success:function(data){
if(data){
alert("正确")
}else{
alert('错误')
}
}
});
});
});
</script>
</body>
</html>

在第2种方法,不要忘记下载jquery.min.js文件下载地址:http://www.jq22.com/jquery-info122

在配置文件Common/conf/config.php中配置地址:

return array( 
/*地址替换*/
'TMPL_PARSE_STRING'=>array( 
'__JS__'=>__ROOT__.'/Public/JS',
),
);

以上所述是小编给大家介绍的thinkphp验证码的实现(form、ajax使用验证),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
PHP include_path设置技巧分享
Jul 03 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
cakephp常见知识点汇总
Feb 24 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
phpquery中文手册
Mar 18 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 #PHP
thinkphp3.2.3 分页代码分享
Jul 28 #PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 #PHP
PHP实现带重试功能的curl连接示例
Jul 28 #PHP
php使用strip_tags()去除html标签仍有空白的解决方法
Jul 28 #PHP
php倒计时出现-0情况的解决方法
Jul 28 #PHP
24条货真价实的PHP代码优化技巧
Jul 28 #PHP
You might like
简单介绍PHP的责任链编程模式
2015/08/11 PHP
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python字符转换
2008/09/06 Python
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python 中 Meta Classes详解
2016/02/13 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Django中间件基础用法详解
2019/07/18 Python
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
员工工作表扬信范文
2014/01/13 职场文书
护校行动方案
2014/05/31 职场文书
物理学专业自荐信
2014/06/11 职场文书
英文演讲稿开场白
2014/08/25 职场文书
校本培训个人总结
2015/02/28 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
运动会3000米加油稿
2015/07/21 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
详解MySQL的内连接和外连接
2023/05/08 MySQL