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写的简单留言本实例代码
Jul 25 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
Apache服务器无法使用的解决方法
May 08 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
php实现等比例不失真缩放上传图片的方法
Nov 14 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
php解决约瑟夫环算法实例分析
Sep 30 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
vuecli项目构建SSR服务端渲染的实现
2020/10/30 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python groupby 函数 as_index详解
2019/12/16 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
汽车维修专业自荐书
2014/05/26 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
python 中的@运算符使用
2021/05/26 Python
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技