Heim  >  Artikel  >  PHP-Framework  >  So verwenden Sie ThinkPHP6 zur Implementierung der Verifizierungscode-Funktion

So verwenden Sie ThinkPHP6 zur Implementierung der Verifizierungscode-Funktion

WBOY
WBOYOriginal
2023-06-21 17:48:353258Durchsuche

In Anmeldeauthentifizierungssystemen wie Website- oder Anwendungsanmeldung, Registrierung und Passwortabruf ist die Bestätigungscodefunktion zu einer gängigen Methode zur Benutzerüberprüfung geworden. Die Verifizierungscode-Funktion kann böswillige Angriffe und Roboterangriffe wirksam verhindern und Benutzerdaten und Systemsicherheit schützen. In diesem Artikel wird erläutert, wie Sie das ThinkPHP6-Framework zum Implementieren der Bestätigungscodefunktion verwenden.

1. Einführung in die ThinkPHP6-Verifizierungscodefunktion

Die Verifizierungscodefunktion im ThinkPHP6-Framework kann mithilfe der thinkcaptchaCaptcha-Klasse implementiert werden. Diese Klasse bietet viele Optionen zum Festlegen von Länge, Schriftart, Schriftgröße, Interferenzlinientyp, Interferenzpunkttyp usw. des Bestätigungscodes. Diese Optionen ermöglichen es uns, unsere eigenen Verifizierungscodes an die Anforderungen spezifischer Geschäftsszenarien anzupassen.

2. Implementierungsschritte

  1. Installieren Sie das ThinkPHP6-Framework

Nachdem Sie die PHP-Umgebung in der lokalen Umgebung konfiguriert haben, können Sie Composer verwenden, um das ThinkPHP6-Framework zu installieren. Geben Sie in der Befehlszeile den folgenden Befehl ein:

composer create-project topthink/think myproject

Dadurch wird ein Projektverzeichnis namens „myproject“ erstellt und automatisch alle für das Projekt erforderlichen Abhängigkeiten installiert und initialisiert.

  1. Bestätigungscode-Methode erstellen

Im ThinkPHP6-Framework können wir die Bestätigungscode-Methode im Controller definieren. Beispielsweise können wir im Index-Controller eine Verifizierungsmethode erstellen. Diese Methode kann einen Parameter akzeptieren, um die Länge des Bestätigungscodes anzugeben. Der Code lautet wie folgt:

namespace appindexcontroller;

use thinkcaptchaCaptcha;

class Index
{
    public function verify($length = 4)
    {
        $captcha = new Captcha([
            'length'    =>  $length,
            'useNoise'  =>  true,
            'fontSize'  =>  30,
            'useCurve'  =>  false,
        ]);
        return $captcha->entry();
    }
}

Im obigen Code verwenden wir die Captcha-Klasse, um den Bestätigungscode zu generieren. Wir übergeben einige Parameter, um die Länge des Bestätigungscodes anzugeben, ob Interferenzlinien oder Interferenzpunkte usw. verwendet werden sollen.

  1. Bestätigungscode anzeigen

Im obigen Controller-Code verwenden wir die Methode $captcha->entry(), um den Bestätigungscode anzuzeigen. Diese Methode generiert ein Bild und gibt das Bild direkt im Browser aus. $captcha->entry()方法来显示验证码。这个方法将会生成一张图片,并在浏览器上直接输出图片。

我们可以在模板或视图文件中创建一个img元素,将它的src属性设置为我们在步骤2中创建的验证码方法的URL,即可在前端页面上显示验证码了。代码如下:

<img src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" />

在上面的代码中,我们使用url函数生成验证码图片的URL,并将长度设定为4,在点击图片时重新加载验证码图片,以更新验证码。

  1. 校验验证码

我们可以在提交表单数据时,使用PHP的session机制来获取用户输入的验证码,然后与生成的验证码进行比较来校验验证码是否正确。代码如下:

namespace appindexcontroller;

use thinkcaptchaCaptcha;

class Index
{
    public function verify($length = 4)
    {
        $captcha = new Captcha([
            'length'    =>  $length,
            'useNoise'  =>  true,
            'fontSize'  =>  30,
            'useCurve'  =>  false,
        ]);
        return $captcha->entry();
    }
    
    public function check()
    {
        $code = input('post.captcha');
        if(captcha_check($code)){
            // 验证码正确
        }else{
            // 验证码错误
        }
    }
}

在上面的代码中,我们定义了一个check方法,用于校验用户输入的验证码。我们使用captcha_check()

Wir können ein img-Element in der Vorlage oder Ansichtsdatei erstellen, sein src-Attribut auf die URL der Bestätigungscode-Methode setzen, die wir in Schritt 2 erstellt haben, und der Bestätigungscode kann auf der Front-End-Seite angezeigt werden. Der Code lautet wie folgt:
    <img id="captcha" src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" />
    <button onclick="document.getElementById('captcha').src='{:url('index/verify', ['length'=>4])}?' + Math.random(); return false;">刷新验证码</button>
  1. Im obigen Code verwenden wir die URL-Funktion, um die URL des Bestätigungscode-Bildes zu generieren, und legen die Länge auf 4 fest. Wenn auf das Bild geklickt wird, wird das Bestätigungscode-Bild zur Aktualisierung neu geladen den Verifizierungscode.
    1. Bestätigungscode überprüfen

      Wir können den Sitzungsmechanismus von PHP verwenden, um den vom Benutzer beim Senden von Formulardaten eingegebenen Bestätigungscode abzurufen und ihn dann mit dem generierten Bestätigungscode zu vergleichen, um die Überprüfung zu überprüfen der Code korrekt? Der Code lautet wie folgt:

      namespace appindexcontroller;
      
      use thinkcaptchaCaptcha;
      
      class Index
      {
          // 验证码函数
          public function verify($length = 4)
          {
              $captcha = new Captcha([
                  'length'    =>  $length,
                  'useNoise'  =>  true,
                  'fontSize'  =>  30,
                  'useCurve'  =>  false,
              ]);
              return $captcha->entry();
          }
          
          // 验证码校验函数
          public function check()
          {
              $code = input('post.captcha');
              if(captcha_check($code)){
                  // 验证码正确
              }else{
                  // 验证码错误
              }
          }
      }

      Im obigen Code definieren wir eine Prüfmethode, um den vom Benutzer eingegebenen Bestätigungscode zu überprüfen. Wir verwenden die Funktion captcha_check(), um zu vergleichen, ob der vom Benutzer eingegebene Bestätigungscode und der generierte Bestätigungscode gleich sind.

      1. Funktion zum Aktualisieren des Bestätigungscodes

      Manchmal müssen wir die Funktion zum Aktualisieren des Bestätigungscodes bereitstellen, wenn der Benutzer den Bestätigungscode falsch eingibt, damit der Benutzer die Überprüfung schneller bestehen kann. Wir können diese Funktion erreichen, indem wir einfach die Seite aktualisieren oder die URL des Bestätigungscodebilds ändern.

      Fügen Sie auf der Startseite eine Aktualisierungsschaltfläche zum Element des Bestätigungscodebilds hinzu. Klicken Sie auf diese Schaltfläche, um das Bestätigungscodebild neu zu laden und den Bestätigungscode zu aktualisieren. Der Code lautet wie folgt:

      <!-- 登录表单页面 -->
      <form method="post" action="{:url('index/check')}">
          <div>
              <label>用户名</label>
              <input type="text" name="username" />
          </div>
          <div>
              <label>密码</label>
              <input type="password" name="password" />
          </div>
          <div>
              <label>验证码</label>
              <img id="captcha" src="{:url('index/verify', ['length'=>4])}" onclick="this.src=this.src+'?rand='+Math.random()" /><br/>
              <input type="text" name="captcha" />
              <a href="#" onclick="document.getElementById('captcha').src='{:url('index/verify', ['length'=>4])}?' + Math.random(); return false;">刷新验证码</a>
          </div>
          <button type="submit">登录</button>
      </form>
      🎜Im obigen Code verwenden wir JavaScript-Code, um das src-Attribut des Bestätigungscodebilds zu ändern und übergeben die Funktion Math.random() als Parameter an die URL-Funktion. Auf diese Weise wird bei jeder Aktualisierung eine neue URL generiert, um den Bestätigungscode erneut zu laden. 🎜🎜🎜Vollständiger Beispielcode🎜🎜🎜Der obige Codeausschnitt ist möglicherweise nicht vollständig genug. Im Folgenden finden Sie den vollständigen Code, der ThinkPHP6 zum Implementieren der Bestätigungscodefunktion verwendet. 🎜rrreeerrreee🎜Das Obige ist der gesamte Prozess der Verwendung von ThinkPHP6 zur Implementierung der Bestätigungscodefunktion. Wenn Sie eine Webanwendung oder Website entwickeln, kann die Verwendung der Bestätigungscodefunktion die Sicherheit des Systems verbessern und Benutzerdaten vor böswilligen Angriffen schützen. 🎜

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie ThinkPHP6 zur Implementierung der Verifizierungscode-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    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