Compétences en développement PHP : Comment implémenter la fonction de code de vérification

WBOY
Libérer: 2023-09-21 13:18:01
original
2076 Les gens l'ont consulté

Compétences en développement PHP : Comment implémenter la fonction de code de vérification

Compétences en développement PHP : Comment implémenter la fonction de code de vérification

Le code de vérification (CAPTCHA) est une technologie courante utilisée pour vérifier l'identité de l'utilisateur et est largement utilisée dans le développement de sites Web. Les codes de vérification peuvent empêcher efficacement l’enregistrement malveillant par des robots, le craquage par force brute et d’autres comportements malveillants, et améliorer la sécurité du site Web. Cet article expliquera comment utiliser le langage PHP pour implémenter la fonction de code de vérification et fournira des exemples de code spécifiques.

1. Générer un code de vérification

La génération d'un code de vérification est la première étape pour implémenter la fonction de code de vérification. Nous pouvons créer des images via la bibliothèque GD et dessiner des caractères de code de vérification générés aléatoirement sur les images. Voici un exemple de code pour générer un code de vérification :

<?php
session_start();

// 随机生成验证码字符
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$randomString = '';
$length = 6;

for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, strlen($characters) - 1)];
}

// 将验证码字符保存到session中
$_SESSION['captcha'] = $randomString;

// 创建验证码图片
$image = imagecreatetruecolor(200, 100);
$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, 200, 100, $bgColor);
imagettftext($image, 40, 0, 60, 60, $textColor, 'font.ttf', $randomString);

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons d'abord la fonction session_start() pour ouvrir la session afin de stocker les caractères du code de vérification. Nous sélectionnons ensuite des caractères au hasard dans la boucle, les enregistrons dans la variable $randomString et les stockons dans $_SESSION['captcha']. Ensuite, utilisez la fonction imagecreatetruecolor() pour créer une image $canevas d'une taille de 200 x 100 pixels et définissez la couleur d'arrière-plan et la couleur du texte. Utilisez la fonction imagefilledrectangle() pour remplir le canevas de blanc, puis utilisez la fonction imagettftext() pour dessiner les caractères captcha sur le canevas. Enfin, utilisez la fonction header() pour définir le type de réponse sur image/png, et utilisez la fonction imagepng() pour afficher le canevas sous forme d'image PNG.

2. Vérification du code de vérification

Après avoir généré le code de vérification, nous devons l'afficher sur la page Web et fournir une zone de saisie permettant aux utilisateurs de saisir le code de vérification. Lorsque l'utilisateur soumet le formulaire, nous devons vérifier l'exactitude du code de vérification. Voici un exemple de code pour la vérification du code de vérification :

<?php
session_start();

// 获取用户输入的验证码
$userCaptcha = $_POST['captcha'];

// 验证码比较(不区分大小写)
if (strcasecmp($userCaptcha, $_SESSION['captcha']) == 0) {
    echo '验证码正确';
} else {
    echo '验证码错误';
}

// 清除session中的验证码
unset($_SESSION['captcha']);
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons d'abord la fonction session_start() pour ouvrir la session, puis obtenons le code de vérification $_POST['captcha'] saisi par l'utilisateur à partir de le formulaire soumis par l'utilisateur. Ensuite, utilisez la fonction strcasecmp() pour comparer le code de vérification saisi par l'utilisateur avec le code de vérification stocké dans la session. La fonction strcasecmp() est une fonction de comparaison de chaînes insensible à la casse qui renvoie 0 pour indiquer l'égalité et différent de zéro pour indiquer l'inégalité. Afficher les informations correspondantes en fonction des résultats de la comparaison. Enfin, utilisez la fonction unset() pour effacer le code de vérification dans la session pour une prochaine utilisation.

3. Utilisez la fonction de code de vérification

Ce qui suit est un exemple de code pour utiliser la fonction de code de vérification :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>验证码示例</title>
</head>
<body>
    <form action="verify.php" method="POST">
        <img src="captcha.php" alt="验证码">
        <input type="text" name="captcha" placeholder="请输入验证码">
        <input type="submit" value="提交">
    </form>
</body>
</html>
Copier après la connexion

Dans le code ci-dessus, nous utilisons la balise Compétences en développement PHP : Comment implémenter la fonction de code de vérification définir le code de vérification L'attribut src de l'image est captcha.php Ce fichier PHP est utilisé pour générer le code de vérification. Le formulaire contient également une zone de saisie permettant à l'utilisateur de saisir le code de vérification et un bouton de soumission. Une fois que l'utilisateur a saisi le code de vérification et cliqué sur le bouton Soumettre, le formulaire sera soumis au fichier verify.php pour vérification du code de vérification.

Résumé

Cet article présente comment utiliser le langage PHP pour implémenter la fonction de code de vérification et fournit des exemples de code spécifiques. En générant des caractères aléatoires et en dessinant des images de code de vérification, nous pouvons prévenir efficacement les attaques de robots et d'acteurs malveillants sur le site Web. Lorsque vous utilisez la fonction de code de vérification, vous devez veiller à protéger la sécurité des caractères du code de vérification pour éviter qu'ils ne soient devinés par des programmes malveillants. J'espère que cet article pourra vous aider à comprendre et à appliquer la fonction 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!