thinkphp验证码的实现(form、ajax实现验证)
两种验证码验证实现,一种直接在form表单提交按钮实现验证,一种使用ajax传递参数实现验证:
1、直接在form表单提交按钮实现验证,在控制器VerifyController.class.php中写入如下代码:
namespaceHome\Controller; useThink\Controller; classVerifyControllerextendsController{ publicfunctionindex(){ $this->display(); } publicfunctioncheckLogin(){ $verify=new\Think\Verify(); $code=I('post.verify');//表单验证码 if($verify->check($code)){ $this->success('验证码正确'); }else{ $this->error('验证码错误'); } } publicfunctionverify() { //实例化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中的代码如下:
<!DOCTYPEhtml> <html> <head> <title></title> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> </head> <body> <formaction="{:U('verify/checkLogin')}"method="post"> <divclass="form-grouphas-feedback"> <inputtype="text"name="verify"id="verify"placeholder="验证码"style="width:100px;"/> <spanstyle="right:120px;"></span> <imgclass="verify"src="{:U(verify)}"alt="验证码"onClick="this.src=this.src+'?'+Math.random()"/> </div> <divclass="col-xs-4"> <buttontype="submit">验证</button> </div> </form> </body> </html>
2、使用ajax传递参数实现验证,在控制器VerifyController.class.php中的代码如下:
namespaceHome\Controller; useThink\Controller; classVerifyControllerextendsController{ publicfunctionindex(){ $this->display(); } publicfunctioncheckLogin(){ $verify=new\Think\Verify(); $code=$_POST['code'];//ajax验证码获取 if($verify->check($code)){ $this->ajaxReturn(1); }else{ $this->ajaxReturn(0); } } publicfunctionverify() { //实例化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中的代码如下:
<!DOCTYPEhtml> <html> <head> <title></title> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <scriptsrc="__JS__/jquery-2.1.0.min.js"></script> </head> <body> <formaction="{:U('verify/checkLogin')}"method="post"> <divclass="form-grouphas-feedback"> <inputtype="text"name="verify"id="verify"placeholder="验证码"style="width:100px;"/> <spanstyle="right:120px;"></span> <imgclass="verify"src="{:U(verify)}"alt="验证码"onClick="this.src=this.src+'?'+Math.random()"/> </div> <divclass="col-xs-4"> <buttontype="button"id="ver">验证</button> </div> </form> <script> $(document).ready(function(){ /*ajax验证码*/ $("#ver").click(function(){ varcode=$("#verify").val();//获取输入验证码 varurl=$('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中配置地址:
returnarray( /*地址替换*/ 'TMPL_PARSE_STRING'=>array( '__JS__'=>__ROOT__.'/Public/JS', ), );
以上所述是小编给大家介绍的thinkphp验证码的实现(form、ajax使用验证),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!