Ce qui suit est une introduction au code de vérification du framework ThinkPHP de la colonne du didacticiel ThinkPHP. J'espère que cela sera utile aux amis dans le besoin !
La classe ThinkVerify peut prendre en charge les fonctions de génération et de vérification des codes de vérification.
Ce qui suit est le moyen le plus simple de générer un code de vérification :
$Verify = new \Think\Verify();$Verify->entry();
Le code ci-dessus générera une image de code de vérification par défaut et l'affichera, comme indiqué ci-dessous :
Les informations du code de vérification générées seront enregistrées dans la session, et les données incluses sont :
array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
Si vous devez générer plusieurs codes de vérification sur une seule page, l'entrée La méthode doit transmettre les informations identifiées.
Vous pouvez définir les paramètres pertinents pour le code de vérification généré afin d'obtenir différents effets d'affichage. Ces paramètres incluent :
参数 | 描述 |
---|---|
expire | 验证码的有效期(秒) |
useImgBg | 是否使用背景图片 默认为false |
fontSize | 验证码字体大小(像素) 默认为25 |
useCurve | 是否使用混淆曲线 默认为true |
useNoise | 是否添加杂点 默认为true |
imageW | 验证码宽度 设置为0为自动计算 |
imageH | 验证码高度 设置为0为自动计算 |
length | 验证码位数 |
fontttf | 指定验证码字体 默认为随机获取 |
useZh | 是否使用中文验证码 |
bg | 验证码背景颜色 rgb数组设置,例如 array(243, 251, 254) |
seKey | 验证码的加密密钥 |
codeSet | 验证码字符集合 3.2.1 新增 |
zhSet | 验证码字符集合(中文) 3.2.1 新增 |
Configuration des paramètres par défaut :
Les réglages des paramètres utilisent deux méthodes.
Instanciez les paramètres entrants :
ou utilisez des paramètres dynamiques, tels que :
Par défaut, la police du code de vérification est utilisée de manière aléatoire dans le fichier de police sous le répertoire ThinkPHP/Library/Think/Verify/ttfs/
Nous pouvons spécifier la police du code de vérification, par exemple :
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf';$Verify->entry();Image d'arrière-planPrend en charge la fonction d'image d'arrière-plan du code de vérification, qui peut être définie comme suit :
$Verify = new \Think\Verify();// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片$Verify->useImgBg = true;$Verify->entry();Code de vérification chinoisSi vous souhaitez utiliser le code de vérification chinois, vous pouvez set :
$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf$Verify->useZh = true;$Verify->entry();display L'effet est le suivant : S'il ne peut pas être affiché normalement, veuillez confirmer qu'il existe des fichiers de polices chinoises sous votre ThinkPHP /Bibliothèque/Think/Verify/zhttfs/. S'il n'y a pas de fichier de police chinoise dans ThinkPHP/Library/Think/Verify/zhttfs/, vous pouvez télécharger ou copier le fichier de police chinoise depuis C:WindowsFonts. Notez que l'extension du fichier de police est .ttf. Détection du code de vérificationVous pouvez utiliser la méthode
de la classe ThinkVerify pour vérifier si la saisie du code de vérification est correcte. Par exemple, ce qui suit est une détection de code de vérification encapsulé. fonction : check
// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){$verify = new \Think\Verify();return $verify->check($code, $id); }Exercice : Prendre la connexion comme exemple : Méthode du contrôleur :
<?php namespace Home\Controller;use Think\Controller;class LoginController extends Controller { function Login() { if(empty($_POST)) { $this->display(); } else { $code = $_POST["yzm"]; $verify = new \Think\Verify(); if($verify->check($code,2)) //code是用户输入的值 ,2是验证码检测标示,必须与生成的验证码标示相同才能验证 { if($_POST["uid"]!="" && $_POST["pwd"]!="") { $model = D("Users"); $uid = $_POST["uid"]; $pwd = $_POST["pwd"]; $attr = $model->field("Pwd")->find($uid); //var_dump($attr); if($pwd==$attr["pwd"]) { session("uid",$uid); // 跳转页面之前将$uid存入session $this->success("登录成功!","Main"); } else { $this->error("登录失败!"); } } else { $this->error("用户名或者密码不能为空!"); } } else { $this->error("验证码不正确!"); } } }//生成验证码的操作方法 function yzm() { $config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 4, // 验证码位数 'useCurve' => true, // 是否画混淆曲线 'useNoise' => true, // 关闭验证码杂点 'expire' => 60, // 验证码有效期(秒) 'useImgBg' => false, // 使用背景图片 'useZh' => true, // 使用中文验证码 'imageW' => 240, // 验证码宽度 'imageH' => 60, // 验证码高度 'fontttf' => 'simhei.ttf', // 验证码字体 ); $Verify = new \Think\Verify($config); $Verify->entry(2);//参数是生成验证码的标示,适用于同一个页面有多个验证码的时候,生成验证码的标示必须与检测验证码的标示相同,否则验证码不正确 }?>Demande de méthode de connexion :
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!