Maison >développement back-end >tutoriel php >Comment utiliser PHP pour implémenter le code de vérification homme-machine

Comment utiliser PHP pour implémenter le code de vérification homme-machine

WBOY
WBOYoriginal
2023-06-27 11:58:361672parcourir

Le code de vérification homme-machine est une forme de code de vérification couramment utilisée, qui peut empêcher efficacement les attaques de robots malveillants et les enregistrements malveillants. En tant que langage côté serveur, PHP est très approprié pour implémenter des fonctions de code de vérification homme-machine. Dans cet article, nous présenterons comment implémenter le code de vérification homme-machine à l'aide de PHP.

  1. Générer une image de code de vérification
    Tout d'abord, nous devons générer une image de code de vérification. Ce processus peut être réalisé en utilisant la bibliothèque GD. La bibliothèque GD est une bibliothèque de traitement d'images open source qui peut être utilisée pour générer et manipuler différents types d'images. En PHP, vous pouvez l'utiliser en installant l'extension GD.

Ce qui suit est un exemple de code pour générer une image de code de vérification :

<?php
session_start();
$code = rand(1000, 9999);
$_SESSION["code"] = $code;
$width = 100;
$height = 50;
$image = imagecreatetruecolor($width, $height);
$textColor = imagecolorallocate($image, 0, 0, 0); //设置文本颜色
$bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景颜色
imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); //绘制矩形背景

//绘制验证码字符串
$font = 'arial.ttf'; //字体
$fontSize = 24; //字体大小
$x = 20; //x轴位置
$y = 30; //y轴位置
for ($i = 0; $i < 4; $i++) {
    $char = substr(str_shuffle("ABCDEFGHJKMNPQRSTUVWXYZ23456789"), 0, 1);
    imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, $font, $char);
    $x += 20;
}

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Ce code générera une image de code de vérification côté serveur et l'affichera dans le navigateur.

  1. Vérifier la saisie de l'utilisateur
    Ensuite, nous devons vérifier que la saisie de l'utilisateur est correcte. Lors de la génération du code de vérification, nous avons enregistré le code de vérification dans la session. Par conséquent, une fois que l'utilisateur a soumis sa saisie, nous pouvons comparer le code de vérification saisi par l'utilisateur avec le code de vérification enregistré dans la session.

Ce qui suit est un exemple de code pour vérifier la saisie de l'utilisateur :

<?php
session_start();
if($_POST["code"] != $_SESSION["code"]) {
    echo "验证码输入错误";
} else {
    echo "验证码输入正确";
}
?>

Ce code vérifiera si le code de vérification soumis par l'utilisateur est le même que le code de vérification enregistré dans la session. S'ils ne sont pas identiques, un message d'erreur sera affiché ; s'ils sont identiques, cela signifie que la saisie de l'utilisateur est correcte.

  1. Intégré dans le formulaire
    Enfin, nous devons intégrer le code de vérification homme-machine dans le formulaire. Afin d'empêcher des attaquants malveillants de soumettre directement le formulaire sans saisir le code de vérification, nous devons afficher le script de génération du code de vérification et le formulaire sur la même page, et le vérifier après la soumission.

Ce qui suit est un exemple de code pour intégrer le code de vérification homme-machine dans le formulaire :

<form method="post" action="verify.php">
    <p>用户名:</p>
    <input type="text" name="username">
    <p>密码:</p>
    <input type="password" name="password">
    <p>验证码:</p>
    <input type="text" name="code">
    <img src="code.php" alt="验证码">
    <input type="submit" value="提交">
</form>

Ce code ajoutera une image au formulaire pour afficher le code de vérification. Les utilisateurs doivent saisir le code de vérification affiché dans l'image pour soumettre le formulaire. Après avoir cliqué sur le bouton Soumettre, le formulaire passera au code du script de vérification et effectuera la vérification.

Résumé
Cet article présente comment utiliser PHP pour implémenter le code de vérification homme-machine. En générant une image de code de vérification et en l'enregistrant dans la session, les attaques malveillantes et l'enregistrement peuvent être efficacement évités. L'intégration de codes de vérification homme-machine dans les formulaires peut améliorer efficacement la sécurité du site Web et l'expérience utilisateur.

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