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 相关文章推荐
针对初学PHP者的疑难问答(2)
Oct 09 PHP
php中取得URL的根域名的代码
Mar 23 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
php中关于socket的系列函数总结
May 18 PHP
使用PHP编写发红包程序
Jul 22 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
PHP实现的回溯算法示例
Aug 15 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
详解PHP Swoole与TCP三次握手
May 27 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面向对象——访问修饰符介绍
2012/11/08 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
采用Psyco实现python执行速度提高到与编译语言一样的水平
2014/10/11 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
pytorch 常用线性函数详解
2020/01/15 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
环境工程求职简历的自我评价范文
2013/10/24 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
教师考核鉴定意见
2015/06/05 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
创业计划书之农家乐
2019/10/09 职场文书