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 空格,换行,跳格使用说明
Dec 18 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
Jul 06 PHP
PHP自毁程序(慎用)
Jul 09 PHP
PHP基于单例模式实现的mysql类
Jan 09 PHP
CodeIgniter自定义控制器MY_Controller用法分析
Jan 20 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
PHP字符串与数组处理函数用法小结
Jan 07 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中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
十个免费的web前端开发工具详细整理
2017/09/18 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
python实现多线程的两种方式
2016/05/22 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
中学劳技课教师的自我评价
2014/02/05 职场文书
房产买卖委托公证书
2014/04/04 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
财务管理制度范本
2015/08/04 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python
MySQL 字符集 character
2022/05/04 MySQL