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访问查询mysql数据的三种方法
Oct 09 PHP
smtp邮件发送一例
Oct 09 PHP
php explode函数实例代码
Feb 27 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
PHP通过API获取手机号码归属地
May 28 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
Centos7安装swoole扩展操作示例
Mar 26 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP分页显示制作详细讲解
2006/10/09 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
JS查找孩子节点简单示例
2019/07/25 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
Exception类的常用方法
2012/06/16 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
公司任命书模板
2014/06/06 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
2014年电厂工作总结
2014/12/04 职场文书
街道社区活动报告
2015/02/05 职场文书
员工手册董事长致辞
2015/07/29 职场文书
离职告别感言
2015/08/04 职场文书