In diesem Artikel werden hauptsächlich die Anzeige, Aktualisierung und Überprüfung des ThinkPHP3.2.3-Verifizierungscodes vorgestellt. Interessierte Freunde können darauf verweisen.
Der ThinkPHP3.2.3-Bestätigungscode wird wie folgt angezeigt, aktualisiert und überprüft:
Bestätigungscode anzeigen
Zuerst alle, Erstellen Sie einen öffentlichen Controller unter Home/Controller PublicController
<?php namespace Home\Controller; use Think\Controller; use Think\Verify; class PublicController extends Controller { /* 生成验证码 */ public function verify() { $config = [ 'fontSize' => 19, // 验证码字体大小 'length' => 4, // 验证码位数 'imageH' => 34 ]; $Verify = new Verify($config); $Verify->entry(); } /* 验证码校验 */ public function check_verify($code, $id = '') { $verify = new \Think\Verify(); $res = $verify->check($code, $id); $this->ajaxReturn($res, 'json'); } }
Verify-Funktion wird zum Generieren von Bestätigungscodes verwendet und config wird zum Konfigurieren der Attribute verwendet die Verifizierungscodes anzeigen. Für die konfigurierbaren Elemente dieses Attributs können Sie die Datei Thinkphp/Library/Think/Verify.class.php anzeigen, die hier nicht beschrieben wird.
Die Funktion check_verify wird verwendet, um die Richtigkeit des Verifizierungscodes zu überprüfen. Die Vorlage sendet den vom Benutzer eingegebenen Bestätigungscode an diese Funktion und gibt $res==true zurück, wenn die Überprüfung erfolgreich ist, und false, wenn die Überprüfung fehlschlägt.
Erstellen Sie index.html auf der Front-End-Vorlagenseite
<p class=""> <label for="j_verify" class="t">验证码:</label> <input id="j_verify" name="j_verify" type="text" class="form-control x in"> <img id="verify_img" alt="点击更换" title="点击更换" src="{:U('public/verify',array())}" class="m"> </p>
Verwenden Sie die U-Methode von Thinkphp, um ein Bild zum Generieren des Bestätigungscodes zu erstellen.
Klicken Sie, um den Bestätigungscode zu aktualisieren
Über den Link oben zum Generieren des Bestätigungscodes können wir sehen, dass der Domainname /public/ „Verify“ kann den Verifizierungscode generieren. Der Mechanismus zur Generierung von Bestätigungscodes von Thinkphp besteht darin, dass wir, wenn wir einen neuen Bestätigungscode generieren müssen, einfach einen Variablenwert nach dem Link hinzufügen müssen.
Wir können die Implementierung einer öffentlichen/Verify/Form-URL mit variablem Wert in Betracht ziehen.
$("#verify_img").click(function() { var verifyURL = "public/verify"; var time = new Date().getTime(); $("#verify_img").attr({ "src" : verifyURL + "/" + time }); });
Verwenden Sie JS, um den aktuellen Zeitstempel abzurufen und ihn der URL hinzuzufügen.
An diesem Punkt können wir die Click-to-Refresh-Funktion des Bestätigungscodes implementieren. Die konkrete Ausdrucksform bleibt Ihnen überlassen.
Asynchrone Überprüfung des Bestätigungscodes
Sie haben sicher gesehen, dass auf einigen Websites der Text in der Eingabe erscheint, wenn wir den Bestätigungscode eingeben Prozess Hinter dem Kästchen wird immer ein Fehler angezeigt, bis wir die korrekte Form des Bestätigungscodes eingeben. Der folgende Code kann implementiert werden:
$("#j_verify").keyup(function() { $.post("public/check_verify", { code : $("#j_verify").val() }, function(data) { if (data == true) { //验证码输入正确 } else { //验证码输入错误 } }); });
Verwenden Sie onekeyup. Das Prinzip muss nicht erklärt werden!
Auf diese Weise können wir vor der Übermittlung des Benutzernamens und des Passworts eine Verifizierung des Verifizierungscodes durchführen und die Verifizierung nach der Übermittlung des Formulars erneut durchführen, um die Benutzererfahrung zu verbessern!
Es ist noch nicht vorbei:
Wenn wir das obige Formular verwenden, um den Bestätigungscode zweimal zu überprüfen, wird es definitiv den ersten asynchronen Vorgang geben Die Verifizierung ist erfolgreich, aber beim Absenden des Formulars wird ein Fehler im Verifizierungscode angezeigt! Tatsächlich liegt der Grund in Thinkphps Verify.class.php:
Das Folgende ist die anfängliche Konfigurationskonfiguration dieser Klasse:
protected $config = array( 'seKey' => 'ThinkPHP.CN', // 验证码加密密钥 'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', // 验证码字符集合 'expire' => 1800, // 验证码过期时间(s) 'useZh' => false, // 使用中文验证码 'zhSet' => '……此处不粘贴了,太多了!', // 中文验证码字符串 'useImgBg' => false, // 使用背景图片 'fontSize' => 25, // 验证码字体大小(px) 'useCurve' => false, // 是否画混淆曲线 'useNoise' => false, // 是否添加杂点 'imageH' => 0, // 验证码图片高度 'imageW' => 0, // 验证码图片宽度 'length' => 5, // 验证码位数 'fontttf' => '', // 验证码字体,不设置随机获取 'bg' => array(243, 251, 254), // 背景颜色 'reset' => true, // 验证成功后是否重置 );
Bitte beachten Sie, dass das letzte Zurücksetzen des Attributs angibt, ob der Bestätigungscode nach erfolgreicher Überprüfung zurückgesetzt werden soll. Ich glaube, jeder versteht, dass der Bestätigungscode nach bestandener erster Überprüfung tatsächlich ungültig wurde. Da wir jedoch die asynchrone Überprüfung verwendet haben, wurde die Seite nicht aktualisiert, was dazu führte, dass der zweite Antrag zur Überprüfung fehlschlug das Gleiche wie das, was das System produziert. Wenn Ihnen dieser doppelte Verifizierungsstil gefällt, können Sie das Zurücksetzen auf „false“ konfigurieren.
Okay, das ist alles für heute zu den Problemen mit dem Verifizierungscode basierend auf Thinkphp3.2.3. Ich habe gerade kurz über die Implementierungsmethode gesprochen. Den spezifischen Inhalt finden Sie im offiziellen TP-Handbuch. Sollten Fehler vorliegen, weisen Sie diese bitte darauf hin.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
thinkPHP5.0-Framework-Konfigurationsformat, Lade-, Analyse- und Lesemethoden
thinkPHP-Überprüfung Einfache Implementierung Methode des Codes
Das obige ist der detaillierte Inhalt vonAnzeige, Aktualisierung und Überprüfung des ThinkPHP3.2.3-Bestätigungscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!