Maison  >  Article  >  développement back-end  >  Comment créer un code de vérification d'image dynamique à l'aide de la bibliothèque PHP et GD

Comment créer un code de vérification d'image dynamique à l'aide de la bibliothèque PHP et GD

WBOY
WBOYoriginal
2023-07-12 08:40:45854parcourir

Comment créer un code de vérification d'image dynamique à l'aide de PHP et de la bibliothèque GD

Dans les applications Web, afin d'empêcher les robots et les attaquants malveillants d'automatiser les opérations, des codes de vérification sont souvent utilisés, obligeant les utilisateurs à saisir un code de vérification pour confirmer leur identité. En utilisant PHP et la bibliothèque GD, nous pouvons facilement créer des codes de vérification d'image dynamiques.

La bibliothèque GD est une bibliothèque d'extension pour PHP qui fournit certaines fonctions de traitement des images. Dans cet article, nous utiliserons les fonctions de la bibliothèque GD pour générer une image contenant des caractères aléatoires et la présenter à l'utilisateur comme code de vérification.

Étape 1 : Créer une page Web PHP simple

Tout d'abord, nous devons créer une page Web PHP simple pour présenter notre code de vérification d'image dynamique. Créez un fichier appelé index.php et copiez le code suivant dans le fichier :

<!DOCTYPE html>
<html>
<head>
    <title>动态图片验证码</title>
</head>
<body>
    <h1>动态图片验证码</h1>
    <img src="captcha.php" alt="验证码">
    <br>
    <a href="">换一个验证码</a>
</body>
</html>

Dans cette simple page HTML, nous avons créé un titre et un élément d'image qui affiche le code de vérification. Nous définissons captcha.php pour l'attribut src de l'image, nous générerons et restituerons plus tard l'image dans ce fichier.

Étape 2 : Créer un fichier captcha.php

Maintenant, nous devons créer un fichier appelé captcha.php et copier le code suivant dans le fichier :

<?php
// 启动会话
session_start();

// 创建图像宽度和高度
$width = 200;
$height = 50;

// 创建一个空的图像
$image = imagecreatetruecolor($width, $height);

// 设置背景颜色
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);

// 生成随机的验证码
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = mt_rand(4, 6);
$code = '';
for ($i = 0; $i < $length; $i++) {
    $code .= $characters[mt_rand(0, strlen($characters) - 1)];
}

// 将验证码存储在会话中
$_SESSION['captcha_code'] = $code;

// 设置文本颜色
$text_color = imagecolorallocate($image, 0, 0, 0);

// 在图像中绘制验证码
$font = __DIR__ . '/arial.ttf';
imagettftext($image, 30, 0, 10, 40, $text_color, $font, $code);

// 发送图像头信息
header('Content-Type: image/png');

// 将图像呈现给用户
imagepng($image);
imagedestroy($image);
?>

Dans ce fichier PHP, nous démarrons d'abord la session pour que le code de vérification peuvent être stockés et consultés. Nous avons ensuite créé une image vide avec une largeur et une hauteur spécifiées et défini la couleur d'arrière-plan sur blanc. Ensuite, nous générons un code de vérification contenant des caractères aléatoires et le stockons dans la session.

Ensuite, nous définissons la couleur du texte sur noir et dessinons le texte du captcha sur l'image en utilisant la police choisie. Enfin, nous envoyons les informations d'en-tête de l'image et présentons l'image à l'utilisateur.

Étape 3 : Testez et utilisez le code de vérification

Maintenant, nous pouvons ouvrir le fichier index.php dans le navigateur et afficher le code de vérification généré. Chaque fois que la page est actualisée, un code de vérification différent est généré.

Dans le formulaire, nous pouvons vérifier l'identité de l'utilisateur en vérifiant si le code de vérification saisi par l'utilisateur correspond au code de vérification stocké dans la session.

Nous pouvons utiliser le code suivant pour vérifier l'exactitude du code de vérification :

session_start();

if (isset($_POST['submit'])) {
    if ($_POST['captcha'] == $_SESSION['captcha_code']) {
        // 验证码正确,执行所需操作
    } else {
        echo '验证码错误!';
    }
}

Ici, nous supposons que le contenu de cet article n'inclut pas la partie formulaire et montre uniquement comment vérifier l'exactitude du code de vérification.

En utilisant PHP et la bibliothèque GD, nous pouvons facilement créer des captchas d'images dynamiques pour protéger nos applications Web. Ces codes de vérification jouent un rôle important dans l’identification des utilisateurs réels et dans la prévention des attaques automatisées.

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