Heim >Backend-Entwicklung >PHP-Tutorial >Implementierung des Thinkphp-Verifizierungscodes (Formular, Ajax-Implementierungsverifizierung)_php-Beispiel
Zwei Implementierungen zur Überprüfung des Bestätigungscodes: Eine besteht darin, die Überprüfung direkt auf der Schaltfläche zum Senden des Formulars zu implementieren, und die andere besteht darin, Ajax zu verwenden, um Parameter zur Implementierung der Überprüfung zu übergeben:
1. Implementieren Sie die Verifizierung direkt auf der Schaltfläche zum Senden des Formulars und schreiben Sie den folgenden Code in den Controller 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(); } }
Der Code in der Ansicht Verify/index.html lautet wie folgt:
<!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. Verwenden Sie Ajax, um Parameter zur Überprüfung zu übergeben. Der Code im Controller VerifyController.class.php lautet wie folgt:
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(); } }
Der Code in der Ansicht Verify/index.html lautet wie folgt:
<!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>
Vergessen Sie bei der zweiten Methode nicht, die Download-Adresse der Datei jquery.min.js herunterzuladen: http://www.jq22.com/jquery-info122
Konfigurieren Sie die Adresse in der Konfigurationsdatei Common/conf/config.php:
return array( /*地址替换*/ 'TMPL_PARSE_STRING'=>array( '__JS__'=>__ROOT__.'/Public/JS', ), );
Das Obige ist die vom Herausgeber eingeführte Implementierung des Thinkphp-Verifizierungscodes (Formular, Ajax-Verifizierung). Ich hoffe, dass er Ihnen hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird darauf antworten Sie rechtzeitig. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der Script House-Website bedanken!