Comment gérer la situation où le code de vérification PHP ne peut pas être affiché une fois collé

PHPz
Libérer: 2024-02-29 13:22:01
original
819 Les gens l'ont consulté

Comment gérer la situation où le code de vérification PHP ne peut pas être affiché une fois collé

Titre : Résolvez le problème selon lequel le code de vérification PHP ne peut pas être affiché lorsqu'il est collé

Le code de vérification est une méthode de vérification de sécurité couramment utilisée sur les sites Web. Il peut empêcher efficacement les attaques malveillantes lorsque les utilisateurs soumettent des formulaires ou effectuent des opérations de connexion. Cependant, parfois, lorsque vous utilisez PHP pour générer un code de vérification, celui-ci peut ne pas s'afficher une fois collé, ce qui entraîne des désagréments pour l'expérience utilisateur. Cet article explique comment résoudre le problème selon lequel le code de vérification PHP ne peut pas être affiché une fois collé et fournit des exemples de code spécifiques.

1. Analyse du problème

Lorsque vous utilisez PHP pour générer des codes de vérification sur une page Web, la bibliothèque GD ou d'autres fonctions associées sont généralement utilisées pour générer des images de code de vérification. Cependant, dans certains cas, lorsque les utilisateurs collent le code de vérification dans la zone de saisie du code de vérification, ils peuvent rencontrer le problème que le code de vérification ne peut pas être affiché, car le contenu collé n'est pas correctement reconnu comme une image.

2. Solution

Afin de résoudre ce problème, nous pouvons afficher le contenu textuel du code de vérification sur la page tout en générant l'image du code de vérification. De cette façon, même si l’utilisateur ne peut pas afficher l’image correctement, il peut toujours la vérifier par le texte. Voici un exemple de code spécifique :

<?php
session_start();

$width = 120;
$height = 40;
$length = 4;
$str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$code = '';

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

$_SESSION['captcha'] = $code;

$image = imagecreatetruecolor($width, $height);
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);

imagefill($image, 0, 0, $bg_color);
imagettftext($image, 20, 0, 10, 30, $text_color, 'arial.ttf', $code);

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

Dans le code ci-dessus, un code de vérification aléatoire contenant des caractères majuscules et minuscules et des chiffres est d'abord généré, puis stocké au format $_SESSION['captcha'] 中。同时,利用 GD 库生成验证码图片,将验证码文本写入图片。然后将验证码图片以 image/png et affiché sur la page.

3. Affichage de la page

Sur la page HTML, l'image du code de vérification et le texte du code de vérification peuvent être affichés à l'utilisateur en même temps, comme indiqué ci-dessous :

<form action="verify.php" method="post">
    <img src="captcha.php" alt="captcha" />
    <input type="text" name="captcha" />
    <input type="submit" value="Submit" />
</form>
Copier après la connexion

Dans ce formulaire, l'utilisateur peut voir le code de vérification. image et zone de saisie, soumettez le formulaire pour vérification après avoir entré le code de vérification. Même si l'utilisateur ne peut pas afficher normalement l'image du code de vérification, il peut toujours vérifier l'entrée via le texte du code de vérification.

En résumé, en affichant le texte du code de vérification tout en générant l'image du code de vérification, le problème selon lequel le code de vérification PHP ne peut pas être affiché lorsqu'il est collé peut être résolu et l'expérience utilisateur peut être améliorée.

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!

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!