thinkphp验证码的实现(form、ajax实现验证)
程序员文章站
2024-04-02 16:49:28
两种验证码验证实现,一种直接在form表单提交按钮实现验证,一种使用ajax传递参数实现验证:
1、直接在form表单提交按钮实现验证,在控制器verifycontr...
两种验证码验证实现,一种直接在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使用验证),希望对大家有所帮助
上一篇: laravel学习教程之存取器
下一篇: header与缓冲区之间的深层次分析