Maison cadre php PensezPHP Comment utiliser ThinkPHP6 pour implémenter la fonction de code de vérification

Comment utiliser ThinkPHP6 pour implémenter la fonction de code de vérification

Jun 21, 2023 pm 05:48 PM
thinkphp 验证码 实现

Dans les systèmes d'authentification de connexion tels que la connexion à un site Web ou à une application, l'enregistrement et la récupération de mot de passe, la fonction de code de vérification est devenue une méthode courante de vérification des utilisateurs. La fonction de code de vérification peut prévenir efficacement les attaques malveillantes et les attaques de robots, et protéger les données des utilisateurs et la sécurité du système. Cet article expliquera comment utiliser le framework ThinkPHP6 pour implémenter la fonction de code de vérification.

1. Introduction à la fonction de code de vérification ThinkPHP6

La fonction de code de vérification dans le framework ThinkPHP6 peut être implémentée en utilisant la classe thinkcaptchaCaptcha. Cette classe offre de nombreuses options pour définir la longueur, la police, la taille de la police, le type de ligne d'interférence, le type de point d'interférence, etc. du code de vérification. Ces options nous permettent de personnaliser nos propres codes de vérification pour répondre aux besoins de scénarios commerciaux spécifiques.

2. Étapes de mise en œuvre

  1. Installer le framework ThinkPHP6

Après avoir configuré l'environnement PHP dans l'environnement local, vous pouvez utiliser composer pour installer le framework ThinkPHP6. Entrez la commande suivante sur la ligne de commande :

composer create-project topthink/think myproject
Copier après la connexion

Cela créera un répertoire de projet appelé monprojet et installera et initialisera automatiquement toutes les dépendances requises pour le projet.

  1. Créer une méthode de code de vérification

Dans le framework ThinkPHP6, nous pouvons définir la méthode du code de vérification dans le contrôleur. Par exemple, nous pouvons créer une méthode de vérification dans le contrôleur Index. Cette méthode peut accepter un paramètre pour spécifier la longueur du code de vérification. Le code est le suivant :

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();
    }
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la classe Captcha pour générer le code de vérification. Nous transmettons certains paramètres pour spécifier la longueur du code de vérification, s'il faut utiliser des lignes d'interférence ou des points d'interférence, etc.

  1. Afficher le code de vérification

Dans le code du contrôleur ci-dessus, nous utilisons la méthode $captcha->entry() pour afficher le code de vérification. Cette méthode générera une image et affichera l’image directement sur le navigateur. $captcha->entry()方法来显示验证码。这个方法将会生成一张图片,并在浏览器上直接输出图片。

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

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

在上面的代码中,我们使用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{
            // 验证码错误
        }
    }
}
Copier après la connexion

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

Nous pouvons créer un élément img dans le modèle ou le fichier de visualisation, définir son attribut src sur l'URL de la méthode de code de vérification que nous avons créée à l'étape 2, et le code de vérification peut être affiché sur la page frontale. Le code est le suivant :
    <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>
    Copier après la connexion
  1. Dans le code ci-dessus, nous utilisons la fonction url pour générer l'URL de l'image du code de vérification et définissons la longueur sur 4. Lorsque l'on clique sur l'image, l'image du code de vérification est rechargée pour être mise à jour. le code de vérification.
    1. Vérifier le code de vérification

      Nous pouvons utiliser le mécanisme de session de PHP pour obtenir le code de vérification saisi par l'utilisateur lors de la soumission des données du formulaire, puis le comparer avec le code de vérification généré pour vérifier que la vérification est le code est correct ? Le code est le suivant :

      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{
                  // 验证码错误
              }
          }
      }
      Copier après la connexion

      Dans le code ci-dessus, nous définissons une méthode de vérification pour vérifier le code de vérification saisi par l'utilisateur. Nous utilisons la fonction captcha_check() pour comparer si le code de vérification saisi par l'utilisateur et le code de vérification généré sont égaux.

      1. Fonction d'actualisation du code de vérification

      Parfois, nous devons fournir la fonction d'actualisation du code de vérification lorsque l'utilisateur saisit le code de vérification de manière incorrecte, afin que l'utilisateur puisse réussir la vérification plus rapidement. Nous pouvons réaliser cette fonction en actualisant simplement la page, ou en modifiant l'URL de l'image du code de vérification.

      Sur la page frontale, ajoutez un bouton d'actualisation à l'élément de l'image du code de vérification. Cliquez sur ce bouton pour recharger l'image du code de vérification afin de mettre à jour le code de vérification. Le code est le suivant :

      <!-- 登录表单页面 -->
      <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>
      Copier après la connexion
      🎜Dans le code ci-dessus, nous utilisons du code JavaScript pour modifier l'attribut src de l'image du code de vérification et passons la fonction Math.random() en tant que paramètre à la fonction url. De cette façon, chaque actualisation générera une nouvelle URL pour recharger le code de vérification. 🎜🎜🎜Exemple de code complet🎜🎜🎜L'extrait de code ci-dessus n'est peut-être pas suffisamment complet. Ce qui suit est le code complet utilisant ThinkPHP6 pour implémenter la fonction de code de vérification. 🎜rrreeerrreee🎜Ce qui précède est l'ensemble du processus d'utilisation de ThinkPHP6 pour implémenter la fonction de code de vérification. Si vous développez une application Web ou un site Web, l'utilisation de la fonction de code de vérification peut améliorer la sécurité du système et protéger les données des utilisateurs contre les attaques malveillantes. 🎜

      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!

    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Commandes de chat et comment les utiliser
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Le navigateur Chrome n'affiche pas le code de vérification ? Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Le navigateur Chrome n'affiche pas le code de vérification ? Mar 13, 2024 pm 08:55 PM

    Que dois-je faire si Google Chrome n'affiche pas l'image du code de vérification ? Lors de la connexion à une page Web à l'aide de Google Chrome, un code de vérification est parfois requis. Certains utilisateurs constatent que Google Chrome ne peut pas afficher correctement le contenu de l'image lorsqu'il utilise des codes de vérification d'image. Qu'est-ce qui devrait être fait? L'éditeur ci-dessous vous expliquera comment gérer le code de vérification de Google Chrome qui ne s'affiche pas. J'espère que cela sera utile à tout le monde ! Introduction à la méthode : 1. Entrez dans le logiciel, cliquez sur le bouton « Plus » dans le coin supérieur droit et sélectionnez « Paramètres » dans la liste d'options ci-dessous pour entrer. 2. Après être entré dans la nouvelle interface, cliquez sur l'option « Paramètres de confidentialité et sécurité » sur la gauche. 3. Cliquez ensuite sur « Paramètres du site Web » à droite

    Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

    Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

    Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Mar 24, 2024 am 11:27 AM

    Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Avec l’essor des réseaux sociaux, WeChat est devenu l’un des outils de communication indispensables dans la vie quotidienne des gens. Cependant, de nombreuses personnes peuvent rencontrer un problème : se connecter à plusieurs comptes WeChat en même temps sur le même téléphone mobile. Pour les utilisateurs de téléphones mobiles Huawei, il n'est pas difficile d'obtenir une double connexion WeChat. Cet article explique comment obtenir une double connexion WeChat sur les téléphones mobiles Huawei. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei offre une fonction très pratique : l'ouverture d'une double application. Grâce à la fonction de double ouverture de l'application, les utilisateurs peuvent simultanément

    Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

    ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

    Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

    Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

    Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Mar 20, 2024 pm 04:54 PM

    Le langage de programmation PHP est un outil puissant pour le développement Web, capable de prendre en charge une variété de logiques et d'algorithmes de programmation différents. Parmi eux, l’implémentation de la séquence de Fibonacci est un problème de programmation courant et classique. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP pour implémenter la séquence de Fibonacci et joindrons des exemples de code spécifiques. La suite de Fibonacci est une suite mathématique définie comme suit : le premier et le deuxième élément de la suite valent 1, et à partir du troisième élément, la valeur de chaque élément est égale à la somme des deux éléments précédents. Les premiers éléments de la séquence

    Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Mar 24, 2024 pm 06:03 PM

    Comment mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei Avec la popularité des logiciels sociaux et l'importance croissante accordée à la confidentialité et à la sécurité, la fonction de clonage WeChat est progressivement devenue le centre d'attention. La fonction de clonage WeChat peut aider les utilisateurs à se connecter simultanément à plusieurs comptes WeChat sur le même téléphone mobile, ce qui facilite la gestion et l'utilisation. Il n'est pas difficile de mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei. Il vous suffit de suivre les étapes suivantes. Étape 1 : Assurez-vous que la version du système de téléphonie mobile et la version de WeChat répondent aux exigences. Tout d'abord, assurez-vous que la version de votre système de téléphonie mobile Huawei a été mise à jour vers la dernière version, ainsi que l'application WeChat.

    Lequel est le meilleur, Laravel ou thinkphp ? Lequel est le meilleur, Laravel ou thinkphp ? Apr 09, 2024 pm 03:18 PM

    Comparaison des performances des frameworks Laravel et ThinkPHP : ThinkPHP fonctionne généralement mieux que Laravel, en se concentrant sur l'optimisation et la mise en cache. Laravel fonctionne bien, mais pour les applications complexes, ThinkPHP peut être mieux adapté.

    See all articles