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之第一天
Oct 09 PHP
用PHP连接Oracle for NT 远程数据库
Oct 09 PHP
php不用正则验证真假身份证
Nov 06 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
浅谈php扩展imagick
Jun 02 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 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实现的常见排序算法汇总
2014/09/08 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
js form action动态修改方法
2008/11/04 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
node模块机制与异步处理详解
2016/03/13 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
举例讲解Django中数据模型访问外键值的方法
2015/07/21 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
python中如何打包用户自定义模块
2020/09/23 Python
银行实习鉴定
2013/12/13 职场文书
物流创业计划书
2014/02/01 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
商务英语广告词大全
2014/03/18 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
平面设计师岗位职责
2014/09/18 职场文书
世界文化遗产导游词
2015/02/13 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
小爸爸观后感
2015/06/15 职场文书
检讨书范文
2019/04/16 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python