Position actuelle: Accueil> Derniers articles> Étapes détaillées et pratiques d'optimisation pour générer des images de code de vérification à l'aide de bibliothèques PHP et GD

Étapes détaillées et pratiques d'optimisation pour générer des images de code de vérification à l'aide de bibliothèques PHP et GD

M66 2025-06-25

Meilleures pratiques pour générer des images de code de vérification à l'aide de bibliothèques PHP et GD

Dans le développement Web, les codes de vérification sont largement utilisés pour empêcher les attaques malveillantes et les opérations automatisées de la machine pour assurer la sécurité de l'authentification des utilisateurs. Le code de vérification présente une chaîne de caractères aléatoires sous la forme d'une image, et l'utilisateur doit entrer les caractères corrects avant de poursuivre les opérations suivantes. Cet article vous amènera à générer des images de code de vérification étape par étape dans les bibliothèques PHP et GD, et fournir les meilleures pratiques et exemples de code.

Introduction à la bibliothèque GD

La bibliothèque GD est un outil puissant pour le traitement des images en PHP, fournissant des fonctions telles que le dessin des graphiques, du texte et des images à l'échelle. Lors de la génération de codes de vérification, nous pouvons utiliser pleinement la bibliothèque GD pour créer et utiliser des images de code de vérification. Voici les étapes de base pour générer des images de code de vérification à l'aide de la bibliothèque GD:

1. Créez une image vierge

Tout d'abord, nous devons créer une image vierge et définir sa largeur et sa hauteur. Utilisez la fonction ImageCreateTrueColor () dans la bibliothèque GD pour créer une véritable image couleur d'une taille spécifiée. L'exemple de code est le suivant:

$ largeur = 200; // Largeur d'image $ hauteur = 50; // Image Height $ image = ImageCreateTrueColor ($ largeur, $ height); // Créer une image vierge

2. Dessinez la couleur d'arrière-plan

Pour améliorer la lisibilité et la sécurité de l'image du code de vérification, nous définissons une couleur d'arrière-plan aléatoire pour l'image. La couleur d'arrière-plan peut être remplie de la fonction ImageFill (). L'exemple de code suivant montre comment définir la couleur d'arrière-plan sur le blanc:

$ bgColor = ImageColorAllocate ($ image, 255, 255, 255); // Définit la couleur d'arrière-plan sur White ImageFill ($ Image, 0, 0, $ bgColor); // Remplissez la couleur d'arrière-plan

3. Tire du texte du code de vérification

La génération du texte du code de vérification est une étape importante des images de code de vérification. Nous utilisons la fonction ImageTtFText () de la bibliothèque GD pour dessiner des caractères sur l'image. Ce qui suit est le code qui génère le texte du code de vérification:

$ font = 'path / to / your / font.ttf'; // Path de fichier de police $ textColor = ImageColorallocate ($ image, 0, 0, 0); // définir la couleur du texte sur noir $ fonTSIZE = 20; // définir la taille du texte $ la longueur = 4; // Longueur de code de vérification $ charse = '0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'; // SET des caractères de code de vérification $ code = '';

pour ($ i = 0; $ i <$ longueur; $ i ++) {
    $ char = $ CARCET [RAND (0, strlen ($ starset) - 1)];
    $ code. = $ char;
    $ x = ($ largeur / $ la longueur) * $ i + 10; // Calculez les coordonnées x de chaque caractère $ y = $ height / 2 + $ FonTSize / 2; // Calculez les coordonnées Y du personnage ImageTtfText ($ Image, $ Fontize, 0, $ x, $ y, $ textColor, $ font, $ char); // dessiner des caractères}

4. Ajouter des lignes d'interférence

Afin d'augmenter la difficulté et d'améliorer la sécurité du code de vérification, nous pouvons ajouter des lignes d'interférence à l'image du code de vérification. Les lignes d'interférence peuvent être tracées à l'aide de la fonction Imageline (). L'exemple de code est le suivant:

$ lineColor = ImageColorallocate ($ image, 0, 0, 0); // Définissez la couleur de la ligne d&#39;interférence sur Black $ linenum = 5; // définit le nombre de lignes d&#39;interférence pour ($ i = 0; $ i <$ linenum; $ i ++) {
    $ x1 = rand (0, $ width / 2);
    $ y1 = rand (0, $ height);
    $ x2 = rand ($ width / 2, $ width);
    $ y2 = rand (0, $ height);
    Imageline ($ Image, $ x1, $ y1, $ x2, $ y2, $ lineColor); // dessine la ligne d&#39;interférence}

5. Image de code de vérification de sortie

Après avoir terminé la génération de code de vérification, nous utilisons les fonctions d'en-tête () et d'imagepng () de la bibliothèque GD pour sortir l'image de code de vérification à l'utilisateur. Ce qui suit est le code de sortie de l'image du code de vérification:

En-tête (&#39;Content-Type: image / png&#39;); // Définissez le type de contenu sur image / png
ImagePng ($ image); // Image de code de vérification de sortie ImageStroy ($ image); // détruire les ressources d&#39;image

Résumer

Grâce aux étapes ci-dessus, nous avons terminé l'implémentation des images de code de vérification de génération à l'aide de bibliothèques PHP et GD. Ces étapes comprennent la création d'images vierges, le dessin des couleurs d'arrière-plan, l'ajout de texte de code de vérification, les lignes d'interférence, etc.