Maison  >  Article  >  développement back-end  >  Conseils pour générer des codes de vérification graphiques simples à l'aide de la bibliothèque PHP et GD

Conseils pour générer des codes de vérification graphiques simples à l'aide de la bibliothèque PHP et GD

WBOY
WBOYoriginal
2023-07-13 16:28:37753parcourir

Conseils pour générer des codes de vérification graphiques simples à l'aide des bibliothèques PHP et GD

Avec le développement d'Internet, la prévention des attaques malveillantes et des abus est devenue un élément essentiel du développement de sites Web. CAPTCHA est un moyen technique largement utilisé pour vérifier l’identité des utilisateurs et empêcher les robots malveillants de s’enregistrer et de se connecter. En tant que langage de programmation côté serveur populaire, PHP, associé à la bibliothèque GD, peut générer rapidement des codes de vérification graphiques simples.

1. Introduction à la bibliothèque GD
La bibliothèque GD est une bibliothèque d'extension de PHP elle fournit une série de fonctions et de méthodes pour traiter les images. Grâce à la bibliothèque GD, des fonctions telles que le traitement d'image, la mise à l'échelle d'image et la fusion d'images peuvent être réalisées. Dans la génération du code de vérification, la bibliothèque GD joue un rôle essentiel.

2. Générer un code de vérification graphique simple
Ci-dessous, nous utiliserons un exemple simple pour démontrer comment générer un code de vérification graphique via PHP et la bibliothèque GD.

  1. Créez un nouveau fichier PHP nommé captcha.php.
  2. Tout d’abord, nous devons générer une chaîne de code de vérification aléatoire. Vous pouvez utiliser la fonction rand() ou la fonction mt_rand() pour générer un nombre aléatoire dans une plage spécifiée et le convertir en caractères correspondants. Par exemple, nous pouvons générer une chaîne captcha contenant 4 lettres et chiffres aléatoires.
$code = '';
for ($i = 0; $i < 4; $i++) {
    $code .= chr(mt_rand(65, 90));  // 生成大写字母
    $code .= chr(mt_rand(48, 57));  // 生成数字
}
  1. Ensuite, nous devons afficher la chaîne de code de vérification générée sur l'image. Tout d’abord, créez une image d’une taille spécifiée et définissez la couleur d’arrière-plan et la couleur du texte.
$image_width = 120;
$image_height = 40;
$image = imagecreatetruecolor($image_width, $image_height);
$background_color = imagecolorallocate($image, 255, 255, 255);  // 白色背景
$text_color = imagecolorallocate($image, 0, 0, 0);  // 黑色文本
  1. Dessinez la chaîne captcha sur l'image. Du texte peut être ajouté aux images à l'aide de la fonction imagettftext(). Avant d'utiliser cette fonction, assurez-vous d'avoir téléchargé un fichier de police TrueType (.ttf). Par exemple, nous ajoutons du texte dans le coin supérieur gauche.
$font_file = 'path/to/font.ttf';
$text_x = 10;
$text_y = 30;
imagettftext($image, 16, 0, $text_x, $text_y, $text_color, $font_file, $code);
  1. Enfin, sortez l'image et détruisez la ressource image.
header('Content-Type: image/png');  // 设置图像类型为PNG
imagepng($image);  // 输出图像
imagedestroy($image);  // 销毁图像资源

À ce stade, un simple code de vérification graphique a été généré avec succès.

3. Appliquer le code de vérification graphique
L'intégration du code de vérification généré dans la page d'enregistrement ou de connexion du site Web peut empêcher efficacement l'abus de robots malveillants. Lorsque les utilisateurs remplissent le formulaire, ils doivent également remplir le code de vérification correct pour terminer l'opération d'inscription ou de connexion.

<form action="register.php" method="post">
    <!-- 其他表单项 -->
    <img src="captcha.php" alt="验证码">
    <input type="text" name="captcha" placeholder="请填写验证码">
    <button type="submit">注册</button>
</form>

Lors du traitement d'une demande d'inscription ou de connexion sur le backend, il est nécessaire de vérifier si le code de vérification renseigné par l'utilisateur est cohérent avec le code de vérification généré.

$code = $_SESSION['captcha'];  // 从session中取出保存的验证码
$user_input = $_POST['captcha'];  // 用户填写的验证码
if ($user_input === $code) {
    // 验证码正确,继续处理注册或登录
} else {
    // 验证码错误,给出相应提示
}

4. Résumé
Grâce à la bibliothèque PHP et GD, nous pouvons facilement générer des codes de vérification graphiques simples et les appliquer aux pages d'inscription et de connexion du site Web. De cette manière, il est possible d’empêcher efficacement les robots malveillants d’abuser du site Web. Nous pouvons personnaliser et optimiser le style du code de vérification en fonction de nos propres besoins, améliorant ainsi la lisibilité et la sécurité du code de vérification.

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