Heim  >  Artikel  >  Backend-Entwicklung  >  thinkphp3.2 Klicken Sie auf „Aktualisieren“, um einen Bestätigungscode zu generieren

thinkphp3.2 Klicken Sie auf „Aktualisieren“, um einen Bestätigungscode zu generieren

高洛峰
高洛峰Original
2017-02-03 17:53:351494Durchsuche

Bevor ich die Verwendung des ThinkPHP3.2-Verifizierungscodes vorstelle, werde ich zunächst den ThinkPHP-Verifizierungscode im Detail vorstellen. Der spezifische Inhalt ist wie folgt:

ThinkPHP verfügt über eine integrierte Unterstützung für Bestätigungscodes direkt verwendet. Um den Bestätigungscode zu verwenden, müssen Sie die Klassenbibliothek ORG.Util.Image und die Klassenbibliothek ORG.Util.String in die erweiterte Klassenbibliothek importieren.
Verifizierungscode-Methode
Wir fügen der Modulklasse eine Verifizierungsmethode hinzu, um den Bestätigungscode anzuzeigen. Das einfachste Beispiel:

Public function verify(){
  // 导入Image类库
  import("ORG.Util.Image");
  Image::buildImageVerify();
}

Importmethode ist die integrierte Methode von ThinkPHP Klassenbibliothek und Dateiimportmethode. Die im obigen Beispiel importierte Datei ist die Datei Lib/ORG/Util/Image.class.php im ThinkPHP-Systemverzeichnis. Wenn die Image-Klassenbibliothek in das aktuelle Projekt kopiert wurde, z. B. Lib/ORG, können Sie Folgendes verwenden:

import("@.Util.Image");

Die Importmethode ist die integrierte Klassenbibliothek und Datei von ThinkPHP Importmethode. Die im obigen Beispiel importierte Datei ist die Datei Lib/ORG/Util/Image.class.php im ThinkPHP-Systemverzeichnis.
Zugriff auf den Bestätigungscode
Sie können direkt im Browser auf die Methode des Bestätigungscodes zugreifen, um festzustellen, ob der Bestätigungscode normal angezeigt werden kann:
http://127.0.0.1/index.php/Public/verify
Wenn alles normal ist, wird der Bestätigungscode wie folgt angezeigt:

thinkphp3.2 Klicken Sie auf „Aktualisieren“, um einen Bestätigungscode zu generieren

Bestätigungscode im Formular verwenden
Bestätigungscode im Formular verwenden Seite wird mit aufgerufen HTML-IMG-Tag:

<input type="text" name="verify">
<img  id="verifyImg" src="-Article-verify" onClick="changeVerify()" title="点击刷新验证码" / alt="thinkphp3.2 Klicken Sie auf „Aktualisieren“, um einen Bestätigungscode zu generieren" >

Der src-Attributwert ist die Zugriffsadresse der Bestätigungscodemethode, die je nach tatsächlicher Situation variiert.
Aktualisierung des Bestätigungscodes
Wenn auf das Bild des Bestätigungscodes geklickt wird, wird die JavaScript-Funktion „changeVerify()“ ausgelöst, um den Bestätigungscode erneut zu lesen und dadurch den Bestätigungscode zu aktualisieren. Die Referenz dieser Funktion lautet wie folgt:

<script language="JavaScript">
function changeVerify(){
 var timenow = new Date().getTime();
 document.getElementById(&#39;verifyImg&#39;).src=&#39;-Article/verify/&#39;+timenow;
}
</script>

Verifizierung des Verifizierungscodes
Beim Aufrufen der Verifizierung des Verifizierungscodes zeichnet buildImageVerify die MD5-Informationen dieses Verifizierungscodes auf. Verwenden Sie im Formularüberprüfungsvorgang die folgende Methode, um zu überprüfen, ob der Überprüfungscode korrekt ist:

if($_SESSION[&#39;verify&#39;] != md5($_POST[&#39;verify&#39;])) {
  $this->error(&#39;验证码错误!&#39;);
}

Der Überprüfungsname in $_SESSION['verify'] ist die Standard-SESSION-Registrierung Name der buildImageVerify-Methode, Einzelheiten finden Sie in der buildImageVerify-Syntax.
Das obige Beispiel zeigt die einfachste Möglichkeit, den ThinkPHP-Verifizierungscode zu verwenden. Der Bestätigungscode im obigen Beispiel besteht aus 4 Ziffern. Wenn Sie weitere Arten von Bestätigungscodes und chinesische Bestätigungscodes verwenden möchten, lesen Sie den Rest dieses Abschnitts: „ThinkPHP verwendet verschiedene Stile und chinesische Bestätigungscodes“.
Der Grund, warum der Bestätigungscode nicht angezeigt wird
Es wurde festgestellt, dass der Bestätigungscode nicht angezeigt werden kann. Die möglichen Gründe sind wie folgt:
Ob PHP GD-Bibliotheksunterstützung installiert hat.
2. Gibt es vor der Ausgabe eine Ausgabe (insbesondere die Ausgabe von UTF8-Stücklistenkopfinformationen)?
3. Ob die Image-Klassenbibliothek korrekt importiert wird.
4. Wenn es sich um eine Formularseite handelt, überprüfen Sie bitte, ob die Methode zur Anzeige des Bestätigungscodes korrekt aufgerufen wird.

Im Folgenden wird die Implementierungsmethode der Thinkphp3.2-Bestätigungscodegenerierung vorgestellt und der spezifische Inhalt lautet wie folgt: 1. Instanziieren Sie die Klasse, die den Bestätigungscode generiert (Diese Methode wird in IndexController platziert und ist im Inneren leicht zugänglich.)

/**
 *
 * 验证码生成
 */
public function verify_c(){
  $Verify = new \Think\Verify();
  $Verify->fontSize = 18;
  $Verify->length  = 4;
  $Verify->useNoise = false;
  $Verify->codeSet = &#39;0123456789&#39;;
  $Verify->imageW = 130;
  $Verify->imageH = 50;
  //$Verify->expire = 600;
  $Verify->entry();
}

2. Das src-Attribut des Bildes, das an der Rezeption generiert werden muss, verweist auf die Überprüfung Code

<p class="top15 captcha" id="captcha-container">
 <input name="verify" width="50%" height="50" class="captcha-text" placeholder="验证码" type="text">        
 <img width="30%" class="left15"    style="max-width:90%" alt="验证码" src="{:U(&#39;Home/Index/verify_c&#39;,array())}" title="点击刷新">
</p>

3. Beenden Sie das Schreiben. Nach dem oben Gesagten kann der Bestätigungscode für die Seiteninitialisierung angezeigt werden. Nachfolgend wird geschrieben, dass nach dem Klicken auf die Bestätigung ein neues Bestätigungscodebild aktualisiert wird Codebild (dies erfolgt durch Ändern des src-Attributs des Bildes mit jquery. Die Anforderungsverarbeitungsfunktion ist dieselbe, fügt jedoch nach der Anforderung eine Zufallszahl hinzu, um die Anforderung vom vorherigen Bild zu unterscheiden)

// 验证码生成
var captcha_img = $(&#39;#captcha-container&#39;).find(&#39;img&#39;)
var verifyimg = captcha_img.attr("src");
captcha_img.attr(&#39;title&#39;, &#39;点击刷新&#39;);
captcha_img.click(function(){
  if( verifyimg.indexOf(&#39;?&#39;)>0){
    $(this).attr("src", verifyimg+&#39;&random=&#39;+Math.random());
  }else{
    $(this).attr("src", verifyimg.replace(/\?.*$/,&#39;&#39;)+&#39;?&#39;+Math.random());
  }
});

4. Überprüfen Sie, ob der Bestätigungscode korrekt eingegeben wurde.

Im allgemeinen Verzeichnis die globale Funktion hinzufügen.


/**
 * 验证码检查
 */
function check_verify($code, $id = ""){
  $verify = new \Think\Verify();
  return $verify->check($code, $id);
}

b Code

// 检查验证码
$verify = I(&#39;param.verify&#39;,&#39;&#39;);
if(!check_verify($verify)){
  $this->error("亲,验证码输错了哦!",$this->site_url,9);
}
Jetzt können Sie den tp3.2-Verifizierungscode verwenden.

Ergänzung: Beim Schreiben habe ich den vierten Schritt b zur Überprüfung in einen Ajax eingefügt und ein Testergebnis zurückgegeben. Anschließend wird anhand der zurückgegebenen Ergebnisse entschieden, ob das Formular gesendet werden soll. Nachdem der Bestätigungscode die erste Überprüfung bestanden hat, funktioniert die zweite Überprüfung jedoch noch nicht.

Dies ist der gesamte Inhalt dieses Artikels. Am Ende des Artikels gibt es eine kleine Frage. Ich hoffe auch, dass dieser Artikel für Ihr Studium hilfreich sein wird.

Weitere Artikel zu thinkphp3.2 finden Sie auf der chinesischen PHP-Website. Klicken Sie auf „Aktualisieren, um Bestätigungscodes zu generieren“!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn