thinkphp验证码的实现(form、ajax实现验证)

两种验证码验证实现,一种直接在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> <input type="text" placeholder="验证码" /> <span></span> <img src="https://www.jb51.net/{:U(verify)}" alt="验证码" /> </div> <div> <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="https://www.jb51.net/__JS__/jquery-2.1.0.min.js" ></script> </head> <body> <form action="{:U('verify/checkLogin')}" method="post"> <div> <input type="text" placeholder="验证码" /> <span></span> <img src="https://www.jb51.net/{:U(verify)}" alt="验证码" /> </div> <div> <button type="button">验证</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文件下载地址:

在配置文件Common/conf/config.php中配置地址:

return array( /*地址替换*/ 'TMPL_PARSE_STRING'=>array( '__JS__'=>__ROOT__.'/Public/JS', ), );

以上所述是小编给大家介绍的thinkphp验证码的实现(form、ajax使用验证),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/633018c1838b5ce9e3fa14569187c997.html