Maison  >  Article  >  cadre php  >  Comment changer le code de vérification par défaut de thinkphp

Comment changer le code de vérification par défaut de thinkphp

PHPz
PHPzoriginal
2023-04-13 18:34:161081parcourir

thinkphp est un framework PHP populaire pour développer des applications Web. Lors de l'utilisation du framework thinkphp, des codes de vérification sont souvent nécessaires pour augmenter la sécurité du système. Les styles de code de vérification par défaut et les images de thinkphp peuvent ne pas convenir à certains scénarios d'application et doivent être modifiés. Cet article explique comment modifier le code de vérification par défaut de thinkphp.

1. Trouvez le contrôleur de code de vérification

Dans le framework thinkphp, le code de vérification est généré et généré par un contrôleur intégré. Le code source de ce contrôleur se trouve dans le répertoire des fichiers de bibliothèque du framework thinkphp. Le chemin général est : thinkphp/library/think/captcha/Controller.php.

2. Copiez le contrôleur de code de vérification

Afin d'éviter les erreurs lors des mises à jour du système causées par la modification du contrôleur de code de vérification par défaut, vous devez copier le contrôleur de code de vérification par défaut dans un nouveau répertoire sous le répertoire de l'application.

Les étapes spécifiques sont les suivantes :

  1. Créez un nouveau répertoire, par exemple : applicationextracaptcha
  2. Copiez le contrôleurController.php dans ce répertoire.
  3. Modifiez l'espace de noms de Controller.php en : namespace appextracaptcha ;

3. Modifiez le contrôleur de code de vérification

Nous pouvons maintenant modifier le contrôleur de code de vérification et changer la façon dont le code de vérification est généré et généré.

  1. Modifier la méthode de sortie

La méthode de sortie par défaut du code de vérification consiste à renvoyer une image au format gif, et nous pouvons modifier la méthode de sortie pour implémenter d'autres styles de codes de vérification. Par exemple, le code de vérification peut être généré sous forme d'image au format SVG.

Modifiez la méthode de sortie du code de vérification comme suit :

public function show()
{
    $config =    [
        'expire'   =>  3,   //验证码过期时间(s)
        'length'   =>  4,   //验证码长度
        'imageH'   =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = '0123456789';//只用数字作为验证码
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}
  1. Modifiez la méthode de génération du code de vérification

La méthode de génération du code de vérification par défaut de thinkphp consiste à générer aléatoirement des chiffres et des lettres, et nous pouvons également modifier la méthode de génération pour répondre à différents besoins . Par exemple, un code de vérification en caractères chinois peut être généré.

Modifiez la méthode de génération du code de vérification comme suit (en prenant comme exemple la génération du code de vérification chinois) :

public function show()
{
    //引入新字体文件(这里以方正胖头鱼体为例,字体文件需要自己上传)
    $ttf_file = __DIR__ .'/fzpty.ttf';
    $codeSet = '玩家参与游戏,从而培养了自己 的游戏能力'; //验证码文字内容
  
    $config =    [
        'expire'  =>  3,   //验证码过期时间(s)
        'length'  =>  4,   //验证码长度
        'useZh'   => true, //使用中文验证码
        'fontttf' =>  $ttf_file, //指定ttf字体文件
        'imageH'  =>  60,   //验证码高度
        'fontSize' =>  20,  //验证码字体大小(px)
        'useCurve' =>  false,  //是否画混淆曲线
        'useNoise' =>  false,  //是否添加杂点
        'bg'       =>  [255, 255, 255], //背景颜色
    ];
    $captcha = new Captcha($config);
    $captcha->codeSet = $codeSet;//设置验证码文字内容
  
    // 输出svg格式的图片
    echo $captcha->entry('svg'); 
}

Quatre.Modifiez le fichier de configuration du code de vérification

le contrôleur de code de vérification thinkphp lira les paramètres dans le fichier de configuration pour déterminer la génération. et mode de sortie du code de vérification. Par conséquent, nous pouvons également modifier le fichier de configuration pour atteindre l’objectif de changer le code de vérification.

Les étapes spécifiques sont les suivantes :

  1. Copiez le fichier de configuration du code de vérification par défaut du framework dans votre propre répertoire d'application

Ouvrez le fichier de configuration du code de vérification du framework thinkphp config.php, copiez-le dans le répertoire config du répertoire de l'application. , et renommez-le captcha.php.

  1. Modifier la configuration du code de vérification

Vous pouvez modifier les paramètres de configuration associés du code de vérification dans captcha.php. Par exemple, vous pouvez modifier la longueur, le délai d'expiration, la taille de la police et d'autres paramètres du code de vérification :

return [
    'useNoise'    => false, // 是否添加杂点
    'useCurve'    => false, // 是否画混淆曲线
    'fontSize'    => 25,    // 验证码字体大小
    'expire'      => 1800,  // 验证码过期时间(s)
    'length'      => 4,     // 验证码长度
    'fontttf'     => '',    //验证码字体文件路径
    'bg'          => [255, 255, 255], // 验证码背景颜色,如果设置为数组则表示渐变色
];

5. Résumé

Grâce aux étapes ci-dessus, nous pouvons modifier le code de vérification par défaut de thinkphp pour obtenir des styles et un contenu de code de vérification personnalisés . Il convient de noter que lors de la modification du contrôleur de code de vérification et des fichiers de configuration, les fichiers copiés doivent être placés dans le répertoire de l'application pour éviter leur écrasement après les mises à jour de version.

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:
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