Le code de vérification (CAPTCHA) est une technologie largement utilisée pour vérifier l'identité des utilisateurs et évite généralement l'automatisation robotique en obligeant les utilisateurs à identifier des caractères ou des images dans les images. Cet article présentera en détail comment générer des images de code de vérification via PHP et les afficher sur la page Web.
Tout d'abord, nous devons créer un fichier PHP nommé captcha.php et nous assurer que l'extension de fichier est .php.
Dans les scripts PHP, nous devons définir certaines variables pour définir la taille, le nombre de caractères et les jeux de caractères possibles d'images de code de vérification. Voici un exemple de code:
$width = 120; // Largeur de l'image du code de vérification
$height = 40; // La hauteur de l'image du code de vérification
$characters = 4; // Nombre de caractères de code de vérification
$possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
Ensuite, nous créerons une image vierge et définirons certaines propriétés de base telles que la couleur d'arrière-plan, la couleur du texte et la police. Le code est le suivant:
$image = imagecreatetruecolor($width, $height);
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Couleur de fond:Blanc
$textColor = imagecolorallocate($image, 0, 0, 0); // Couleur de texte:noir
imagefill($image, 0, 0, $backgroundColor);
$font = 'path/to/your/font.ttf'; // Chemin de fichier de police
Maintenant, nous devons générer des caractères de code de vérification au hasard et les dessiner sur l'image. PHP offre la possibilité de générer des nombres aléatoires, que nous pouvons utiliser pour sélectionner des caractères dans un tableau de caractères. Voici l'exemple de code:
$captcha = '';
for ($i = 0; $i < $characters; $i++) {
$randomChar = $possibleChars[rand(0, strlen($possibleChars) - 1)];
$captcha .= $randomChar;
$x = ($width / $characters) * $i + 10; // Position de caractère
$y = $height / 2 + 15; // Décalage du centre de texte
imagettftext($image, 20, 0, $x, $y, $textColor, $font, $randomChar);
}
Pour une vérification ultérieure, nous devons stocker le code de vérification généré dans la session de PHP. Ce qui suit est le code:
session_start();
$_SESSION['captcha'] = $captcha;
Enfin, nous devons définir les informations d'en-tête de sortie de l'image et afficher l'image de code de vérification sur l'utilisateur.
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
Grâce aux étapes ci-dessus, nous avons réussi à implémenter un système de code de vérification simple. Chaque fois que la page est actualisée, l'utilisateur verra une nouvelle image de code de vérification, améliorant la possibilité d'éviter les attaques automatisées. Dans les applications pratiques, vous pouvez comparer le code de vérification entré par l'utilisateur avec le stockage de la session pour vérifier l'identité de l'utilisateur.
Il s'agit d'un exemple de base de mise en œuvre du code de vérification PHP que vous pouvez davantage développer et optimiser en fonction de vos besoins.