Position actuelle: Accueil> Derniers articles> Comment utiliser PHP pour générer et vérifier les codes de vérification de l'image

Comment utiliser PHP pour générer et vérifier les codes de vérification de l'image

M66 2025-07-01

PHP réalise la génération et la vérification des codes de vérification d'image

Pendant le processus de développement du site Web, afin d'éviter les attaques malveillantes automatisées ou l'enregistrement automatique, nous utilisons souvent des codes de vérification d'image pour vérifier. Cet article vous montrera comment utiliser PHP pour générer et vérifier les codes de vérification d'image, et fournir des exemples de code pertinents.

Générer un code de vérification d'image

Le cœur de la génération de codes de vérification d'image consiste à générer une chaîne de code de vérification aléatoire et à le dessiner sur l'image. Voici un exemple de code PHP:

 <?php
session_start();

// Déclarer la taille de l&#39;image
$image_width = 100;
$image_height = 40;

// Créer des ressources d&#39;image
$image = imagecreatetruecolor($image_width, $image_height);

// Générer une couleur d&#39;arrière-plan
$bg_color = imagecolorallocate($image, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
imagefill($image, 0, 0, $bg_color);

// Générer la chaîne de code de vérification
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789';
$code = '';
for ($i = 0; $i < 4; $i++) {
    $code .= $chars[mt_rand(0, strlen($chars) - 1)];
}

// Enregistrez la chaîne de code de vérification àsessionmilieu,Pour une vérification ultérieure
$_SESSION['captcha'] = $code;

// Tire du texte du code de vérification
$font_file = 'path_to_your_font.ttf'; // Remplacez par votre propre chemin de fichier de police
$text_color = imagecolorallocate($image, 0, 0, 0); // La couleur du texte est noir
imagettftext($image, 20, 0, 10, 30, $text_color, $font_file, $code);

// Image de sortie
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

Le code ci-dessus crée d'abord une ressource d'image avec une largeur et une hauteur spécifiées via la fonction ImageCreateTrueColor. Ensuite, la couleur d'arrière-plan est générée via la fonction ImageColorallocate et l'image entière est remplie. Enfin, la chaîne de code de vérification est dessinée sur l'image à l'aide de la fonction ImageTtFText, et enfin l'image générée est sortie à l'aide de la fonction ImagePng.

Vérifiez le code de vérification de l'image

Lors de la vérification du code de vérification de l'image, nous devons comparer le code de vérification entré par l'utilisateur avec le code de vérification enregistré dans la session. Ce qui suit est un exemple de code PHP pour vérifier le code de vérification:

 <?php
session_start();

// Obtenez la chaîne de code de vérification entrée par l&#39;utilisateur
$user_input = $_POST['captcha'];

// Être sauvésessionmilieu的验证码字符串
$server_code = $_SESSION['captcha'];

// Vérifiez que le code de vérification entré par l&#39;utilisateur est cohérent avec le code de vérification enregistré
if (strcasecmp($user_input, $server_code) === 0) {
    // Le code de vérification est correct,Effectuer l&#39;opération correspondante
    echo 'Le code de vérification est correct';
} else {
    // Erreur de code de vérification,Inciter l&#39;utilisateur à rentrer
    echo 'Erreur de code de vérification';
}
?>

Le code ci-dessus permet d'abord la session, puis obtient le code de vérification entré par l'utilisateur via le tableau $ _post, puis obtient la chaîne de code de vérification stockée dans la session via le tableau $ _Session. Comparez deux chaînes à travers la fonction StrcasecMP. S'ils correspondent, cela signifie que le code de vérification est correct et que l'opération correspondante peut être effectuée; S'ils ne correspondent pas, il invite que le code de vérification est mauvais.

Résumer

Grâce aux deux codes PHP ci-dessus, nous pouvons réaliser avec succès les fonctions de génération et de vérification des codes de vérification d'image. Le code qui génère le code de vérification peut être enregistré en tant que fichier séparé, tel que captcha.php, qui peut être généré en accédant simplement au fichier lors de la demande. Le code qui vérifie le code de vérification peut être placé dans la page de traitement de la soumission de formulaire.

Dans les applications réelles, en plus des fonctions ci-dessus, vous pouvez également ajouter des mesures de sécurité au besoin, comme l'ajout de lignes d'interférence, les codes de vérification cryptés, etc.