Maison > cadre php > PensezPHP > le corps du texte

Utiliser la technologie Captcha dans ThinkPHP6

王林
Libérer: 2023-06-21 09:10:57
original
2221 Les gens l'ont consulté

Avec la popularité d'Internet, la technologie des codes de vérification est devenue une méthode de protection courante pour les sites Web et les applications. Les CAPTCHA peuvent empêcher les robots et robots d'exploration malveillants d'attaquer des sites Web et des applications, garantissant ainsi la sécurité des informations et de la confidentialité des utilisateurs. Dans ThinkPHP6, la technologie Captcha est intégrée et la fonction de code de vérification peut être facilement implémentée grâce à une configuration et un appel simples.

1. Introduction de base à Captcha

Captcha est une technologie de code de vérification d'image. Son principe est de montrer à l'utilisateur une image générée aléatoirement lorsqu'il se connecte ou soumet un formulaire, et lui demande de saisir le code de vérification dans le champ. image. Poursuivez l’opération. Cette technologie peut largement empêcher les attaques malveillantes et les robots automatisés de nuire à un site Web ou à une application. Les technologies Captcha courantes incluent des chiffres, des lettres ou des combinaisons de lettres et de chiffres, des codes de vérification vocale, des codes de vérification coulissants, etc.

2. Utilisez la technologie Captcha intégrée à ThinkPHP6

ThinkPHP6 possède une classe Captcha intégrée, qui peut facilement implémenter la fonction de code de vérification. La technologie Captcha est implémentée sur la base de la bibliothèque GD et du mécanisme de session, et peut générer des images aléatoires de chiffres et de lettres. Avant utilisation, vous devez vous assurer que la bibliothèque GD a été installée et activée sur le serveur.

  1. Paramètres du fichier de configuration

Tout d'abord, nous devons définir la configuration appropriée de Captcha dans le fichier de configuration config/app.php, y compris le nombre de chiffres du code de vérification, la largeur et la hauteur du code de vérification. , etc. La configuration est la suivante :

'captcha'    => [
        // 验证码位数
        'length'   => 4,
        // 验证码图片宽度
        'width'    => 150,
        // 验证码图片高度
        'height'   => 50,
        // 验证码过期时间(秒)
        'expire'   => 1800,
        // 是否使用中文验证码
        'useZh'    => false,
        // 是否使用算术验证码
        'math'     => false,
        // 是否使用背景图
        'useImgBg' => false,
    ],
Copier après la connexion

Dans la configuration ci-dessus, ce qu'il faut noter est :

longueur : le nombre de chiffres du code de vérification, qui peut être défini selon les besoins

largeur et hauteur : la largeur et la hauteur ; de l'image du code de vérification, qui peut être définie selon les besoins ;

expire : Le délai d'expiration du code de vérification, en secondes. Le code de vérification deviendra invalide après le délai défini

useZh : s'il faut utiliser la vérification chinoise ; code ;

math : s'il faut utiliser le code de vérification arithmétique, c'est-à-dire une simple addition et soustraction Opération légale.

useImgBg : que ce soit pour utiliser une image d'arrière-plan, vous pouvez ajouter une image comme arrière-plan du code de vérification.

  1. Écriture du contrôleur

Nous devons appeler la classe Captcha dans le contrôleur pour générer le code de vérification et l'afficher sur la page, et en même temps enregistrer le code de vérification dans la session pour vérifier si la vérification saisie le code est correct. Le code du contrôleur est le suivant :

use thinkcaptchaacadeCaptcha;

class Index extends BaseController
{
    public function captcha()
    {
        return Captcha::create();
    }
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode d'appel statique de ThinkPHP6 pour générer le code de vérification directement via la méthode Captcha::create(). Le code de vérification généré renverra un flux d'images binaires, que nous pourrons afficher directement à l'aide de la balise

  1. Affichage de la page

Enfin, nous devons utiliser la balise sur la page pour afficher le code de vérification généré, et transmettre le code de vérification au serveur lorsque le formulaire est soumis. Le code est le suivant :

<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>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction url() pour générer l'adresse URL Captcha et déclencher la régénération du code de vérification via l'événement onclick. Le nom de la zone de saisie du code de vérification doit être cohérent avec le nom du code de vérification traité par le serveur, afin que le serveur puisse obtenir correctement la valeur du code de vérification saisie par l'utilisateur.

3. Résumé

La technologie Captcha est devenue une méthode de protection conventionnelle pour les sites Web et les applications. En utilisant la classe Captcha intégrée dans ThinkPHP6, nous pouvons facilement implémenter la fonction de code de vérification. Avant utilisation, vous devez vous assurer que la bibliothèque GD a été installée et ouverte sur le serveur, et définir les paramètres appropriés pour le fichier de configuration Captcha. Enfin, nous devons afficher le code de vérification sur la page et transmettre la valeur du code de vérification saisie par l'utilisateur au serveur pour vérification lors de la soumission du formulaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!