Maison >développement back-end >tutoriel php >Comment développer une fonction de code de vérification en utilisant PHP

Comment développer une fonction de code de vérification en utilisant PHP

WBOY
WBOYoriginal
2023-08-17 21:25:062058parcourir

Comment développer une fonction de code de vérification en utilisant PHP

Comment utiliser PHP pour développer la fonction de code de vérification

Le code de vérification (CAPTCHA) est un moyen technique utilisé pour déterminer si l'utilisateur est une personne réelle ou une machine. Dans les applications réseau, les codes de vérification sont souvent utilisés lors de l'enregistrement, de la connexion, de la réinitialisation du mot de passe, etc. pour empêcher les attaques de machines malveillantes et les connexions illégales. Cet article expliquera comment utiliser PHP pour développer des fonctions de code de vérification et fournira des exemples de code correspondants.

1. Générer des images de code de vérification

En PHP, nous pouvons utiliser la bibliothèque GD pour générer des images de code de vérification. Tout d’abord, nous devons créer un fichier PHP pour générer des images de code de vérification, telles que captcha.php. Dans ce fichier, nous devons mettre en œuvre les étapes suivantes :

  1. Générer une chaîne de code de vérification aléatoire, qui peut être composée de chiffres et de lettres.
<?php
session_start();
$code = '';
$length = 4;  // 验证码长度
$charset = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';  // 验证码字符集
$charsetLen = strlen($charset);
for ($i = 0; $i < $length; $i++) {
    $code .= $charset[mt_rand(0, $charsetLen - 1)];
}
$_SESSION['captcha_code'] = $code;  // 将验证码保存到session中
  1. Créez une image de code de vérification vierge et définissez la couleur d'arrière-plan et la couleur de la police.
$width = 150;  // 图片宽度
$height = 50;  // 图片高度
$image = imagecreatetruecolor($width, $height);
$bgColor = imagecolorallocate($image, 255, 255, 255);  // 背景颜色为白色
$textColor = imagecolorallocate($image, 0, 0, 0);  // 字体颜色为黑色
imagefill($image, 0, 0, $bgColor);
  1. Dessinez la chaîne du code de vérification sur l'image.
$fontSize = 20;  // 字体大小
$fontAngle = 0;  // 字体角度
$x = 30;  // 字体X坐标
$y = 30;  // 字体Y坐标
imagettftext($image, $fontSize, $fontAngle, $x, $y, $textColor, 'path/to/font.ttf', $code);
  1. Ajoutez des lignes d'interférence pour augmenter la lisibilité et la sécurité du code de vérification.
$lineColor = imagecolorallocate($image, 200, 200, 200);  // 干扰线颜色为灰色
for ($i = 0; $i < 5; $i++) {
    imageline($image, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $lineColor);
}
  1. Sortez l'image du code de vérification.
header('Content-type: image/png');  // 设置输出类型为PNG图片
imagepng($image);
imagedestroy($image);

2. Vérifiez la saisie de l'utilisateur

Lors de la génération de l'image du code de vérification, nous devons également écrire du code pour vérifier si le code de vérification saisi par l'utilisateur est correct. Dans des opérations telles que la connexion, le code de vérification saisi par l'utilisateur est généralement soumis au serveur via un formulaire. Nous pouvons vérifier si la saisie de l'utilisateur est correcte en la comparant avec le code de vérification de la session. Voici un exemple simple :

<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $inputCode = $_POST['code'];
    $captchaCode = $_SESSION['captcha_code'];
    if (strcasecmp($inputCode, $captchaCode) === 0) {
        echo '验证通过!';
    } else {
        echo '验证码错误!';
    }
}

Une fois que l'utilisateur a soumis le code de vérification, nous pouvons obtenir le code de vérification saisi par l'utilisateur via $_POST['code'] et utiliser la fonction strcasecmp() (insensible à la casse) avec le code de vérification dans la session Les codes de vérification sont comparés. S'ils sont égaux, cela signifie que le code de vérification est réussi.

Résumé :

Cet article présente comment utiliser PHP pour développer des fonctions de code de vérification et fournit des exemples de code correspondants. En générant des images de codes de vérification et en vérifiant les codes de vérification saisis par les utilisateurs, nous pouvons améliorer la sécurité du site Web et prévenir les attaques malveillantes et les connexions illégales. Dans les applications pratiques, nous pouvons personnaliser le style, la longueur, le jeu de caractères, etc. du code de vérification en fonction des besoins. Dans le même temps, afin d'améliorer l'expérience utilisateur, nous pouvons également ajouter la fonction d'actualisation du code de vérification pour permettre aux utilisateurs d'obtenir de nouvelles images de 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