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之sphinx
May 15 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
php除数取整示例
Apr 24 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
laravel安装zend opcache加速器教程
Mar 02 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
PHP自动生成表单代码分享
Jun 19 PHP
整理php防注入和XSS攻击通用过滤
Sep 13 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
Laravel数据库读写分离配置的方法
Oct 13 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
eclipse php wamp配置教程
2016/06/30 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
layui--select使用以及下拉框实现键盘选择的例子
2019/09/24 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
NumPy 数组使用大全
2019/04/25 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
公司仓库管理制度
2015/08/04 职场文书
医德医风学习心得体会
2016/01/25 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫