Heim > PHP-Framework > Denken Sie an PHP > Verwendung der Captcha-Technologie in ThinkPHP6

Verwendung der Captcha-Technologie in ThinkPHP6

王林
Freigeben: 2023-06-21 09:10:57
Original
2267 Leute haben es durchsucht

Mit der Popularität des Internets ist die Verifizierungscode-Technologie zu einer routinemäßigen Schutzmethode für Websites und Anwendungen geworden. CAPTCHAs können verhindern, dass böswillige Roboter und Crawler Websites und Anwendungen angreifen, und so die Sicherheit der Benutzerinformationen und der Privatsphäre gewährleisten. In ThinkPHP6 ist die Captcha-Technologie integriert und die Verifizierungscode-Funktion kann durch einfache Konfiguration und Aufruf einfach implementiert werden. 1. Grundlegende Einführung in Captcha Bild fortfahren. Diese Technologie kann böswillige Angriffe und automatisierte Bots weitgehend davon abhalten, einer Website oder Anwendung Schaden zuzufügen. Zu den gängigen Captcha-Technologien gehören Zahlen, Buchstaben oder Kombinationen aus Buchstaben und Zahlen, Sprachbestätigungscodes, verschiebbare Bestätigungscodes usw.

2. Verwenden Sie die in ThinkPHP6 integrierte Captcha-Technologie.

ThinkPHP6 verfügt über eine integrierte Captcha-Klasse, mit der die Verifizierungscodefunktion problemlos implementiert werden kann. Die Captcha-Technologie basiert auf der GD-Bibliothek und dem Sitzungsmechanismus und kann zufällige Bilder von Zahlen und Buchstaben generieren. Vor der Verwendung müssen Sie sicherstellen, dass die GD-Bibliothek auf dem Server installiert und aktiviert wurde.

Einstellungen der Konfigurationsdatei

    Zunächst müssen wir die entsprechende Konfiguration von Captcha in der Konfigurationsdatei config/app.php festlegen, einschließlich der Anzahl der Stellen des Bestätigungscodes, der Breite und Höhe des Bestätigungscodes , usw. Die Konfiguration ist wie folgt:
  1. 'captcha'    => [
            // 验证码位数
            'length'   => 4,
            // 验证码图片宽度
            'width'    => 150,
            // 验证码图片高度
            'height'   => 50,
            // 验证码过期时间(秒)
            'expire'   => 1800,
            // 是否使用中文验证码
            'useZh'    => false,
            // 是否使用算术验证码
            'math'     => false,
            // 是否使用背景图
            'useImgBg' => false,
        ],
    Nach dem Login kopieren
  2. In der obigen Konfiguration ist Folgendes zu beachten:

Länge: die Anzahl der Bestätigungscode-Ziffern, die je nach Bedarf eingestellt werden können;

Breite und Höhe: die Breite und Höhe des Bestätigungscodebildes, das je nach Bedarf eingestellt werden kann;

expire: Die Ablaufzeit des Bestätigungscodes in Sekunden. Der Bestätigungscode wird ungültig, nachdem die festgelegte Zeit überschritten wurde Verifizierungscode;

Mathematik: ob arithmetischer Verifizierungscode verwendet werden soll, also einfache Addition und Subtraktion.

useImgBg: Unabhängig davon, ob ein Hintergrundbild verwendet werden soll, können Sie ein Bild als Hintergrund für den Bestätigungscode hinzufügen.

Schreiben des Controllers

Wir müssen die Captcha-Klasse im Controller aufrufen, um den Bestätigungscode zu generieren und auf der Seite anzuzeigen, und gleichzeitig den Bestätigungscode in der Sitzung speichern, um zu überprüfen, ob die eingegebene Bestätigung vorliegt Code ist korrekt. Der Controller-Code lautet wie folgt:

use thinkcaptchaacadeCaptcha;

class Index extends BaseController
{
    public function captcha()
    {
        return Captcha::create();
    }
}
Nach dem Login kopieren
    Im obigen Code verwenden wir die statische Aufrufmethode von ThinkPHP6, um den Bestätigungscode direkt über die Methode Captcha::create() zu generieren. Der generierte Bestätigungscode gibt einen binären Bildstream zurück, den wir direkt mithilfe des -Tags in der Vorlage anzeigen können.
Anzeige der Seite

Abschließend müssen wir das -Tag auf der Seite verwenden, um den generierten Bestätigungscode anzuzeigen, und den Bestätigungscode beim Absenden des Formulars an den Server übergeben. Der Code lautet wie folgt:

<form action="submit" method="POST">
    <!-- 显示验证码 -->
    <img src="<?php echo url('/index/captcha'); ?>" onclick="this.src=this.src+'?'+Math.random();" />
    <!-- 输入验证码 -->
    <label for="verifyCode">验证码:</label>
    <input type="text" name="verifyCode" />
    <button type="submit">提交</button>
</form>
Nach dem Login kopieren
    Im obigen Code verwenden wir die Funktion url(), um die Captcha-URL-Adresse zu generieren und die Neugenerierung des Bestätigungscodes durch das Onclick-Ereignis auszulösen. Der Name des Bestätigungscode-Eingabefelds muss mit dem Namen des vom Server verarbeiteten Bestätigungscodes übereinstimmen, damit der Server den vom Benutzer eingegebenen Bestätigungscodewert korrekt abrufen kann.
  1. 3. Zusammenfassung

Die Captcha-Technologie ist zu einer herkömmlichen Schutzmethode für Websites und Anwendungen geworden. Durch die Verwendung der integrierten Captcha-Klasse in ThinkPHP6 können wir die Verifizierungscode-Funktion problemlos implementieren. Vor der Verwendung müssen Sie sicherstellen, dass die GD-Bibliothek auf dem Server installiert und geöffnet wurde, und relevante Einstellungen für die Captcha-Konfigurationsdatei vornehmen. Schließlich müssen wir den Bestätigungscode auf der Seite anzeigen und den vom Benutzer eingegebenen Bestätigungscodewert zur Überprüfung an den Server übergeben, wenn das Formular gesendet wird.

Das obige ist der detaillierte Inhalt vonVerwendung der Captcha-Technologie in ThinkPHP6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage