Maison développement back-end tutoriel php Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images

Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images

Aug 17, 2023 pm 12:09 PM
php 验证码 图片处理

Cas de traitement dimages PHP : Comment implémenter la fonction de code de vérification des images

Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images

Avec le développement rapide d'Internet, les codes de vérification sont devenus l'un des moyens importants pour protéger la sécurité des sites Web. Le code de vérification est une méthode de vérification qui utilise la technologie de reconnaissance d'image pour déterminer si l'utilisateur est un utilisateur réel. Cet article expliquera comment utiliser PHP pour implémenter la fonction de code de vérification des images et sera accompagné d'exemples de code.

  1. Introduction

Le code de vérification est une image contenant des caractères aléatoires. L'utilisateur doit saisir les caractères dans l'image pour réussir la vérification. Le processus principal de mise en œuvre du code de vérification consiste à générer des caractères aléatoires, à dessiner des caractères dans des images, à ajouter des interférences sonores, etc. PHP fournit la bibliothèque GD pour le traitement des images. Nous pouvons utiliser la bibliothèque GD pour générer des images de code de vérification.

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

Tout d'abord, nous devons définir une fonction pour générer un code de vérification. Voici une implémentation simple :

function generateCaptcha($length = 4) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $captcha = '';
    
    for ($i = 0; $i < $length; $i++) {
        $captcha .= $characters[rand(0, strlen($characters) - 1)];
    }
    
    return $captcha;
}
Copier après la connexion

Dans le code ci-dessus, nous définissons un jeu de caractères contenant des chiffres et des lettres, puis sélectionnons aléatoirement des caractères via une boucle pour générer un code de vérification.

  1. Fonction pour dessiner l'image du code de vérification

Ensuite, nous devons écrire une fonction pour dessiner les caractères du code de vérification générés sur l'image. Voici un exemple de fonction :

function drawCaptcha($captcha) {
    $imageWidth = 120;
    $imageHeight = 40;
    
    $image = imagecreatetruecolor($imageWidth, $imageHeight);
    $backgroundColor = imagecolorallocate($image, 255, 255, 255);
    imagefill($image, 0, 0, $backgroundColor);
    
    $textColor = imagecolorallocate($image, 0, 0, 0);
    
    $font = 'path/to/font.ttf'; // 替换为实际的字体文件路径
    
    $fontSize = 20;
    
    $textX = ($imageWidth - ($fontSize * strlen($captcha))) / 2;
    $textY = ($imageHeight - $fontSize) / 2;
    
    imagettftext($image, $fontSize, 0, $textX, $textY, $textColor, $font, $captcha);
    
    header("Content-Type: image/png");
    imagepng($image);
    imagedestroy($image);
}
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord un canevas vierge de la taille spécifiée, puis définissons la couleur d'arrière-plan du canevas sur blanc. Ensuite, nous avons spécifié la couleur, la police, la taille et d'autres paramètres associés des caractères du code de vérification. Utilisez la fonction imagettftext pour dessiner les caractères du code de vérification sur le canevas et les afficher sous forme d'image au format PNG. imagettftext函数将验证码字符绘制到画布上,并输出为PNG格式的图片。

  1. 添加噪点干扰

为了提高验证码的安全性,我们可以在验证码图片上添加一些噪点干扰。以下是一个示例函数:

function addNoise($image, $noisePercentage = 30) {
    $imageWidth = imagesx($image);
    $imageHeight = imagesy($image);
    
    $totalPixels = $imageWidth * $imageHeight;
    $noisePixels = $totalPixels * $noisePercentage / 100;
    
    for ($i = 0; $i < $noisePixels; $i++) {
        $x = rand(0, $imageWidth - 1);
        $y = rand(0, $imageHeight - 1);
        
        $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
        
        imagesetpixel($image, $x, $y, $color);
    }
    
    return $image;
}
Copier après la connexion

在上述代码中,我们通过循环来随机选择图片中的像素点,然后随机设定噪点的颜色并绘制到图片上。

  1. 将验证码用于网页

最后,我们可以将生成的验证码图片嵌入到网页中,供用户验证。以下是一个示例的HTML代码:

<form action="verify_captcha.php" method="post">
    <label for="captcha">验证码:</label>
    <input type="text" name="captcha" id="captcha" maxlength="4">
    <img src="/static/imghw/default1.png"  data-src="captcha.php"  class="lazy" alt="验证码">
    <button type="submit">提交</button>
</form>
Copier après la connexion

在上述代码中,我们通过<img alt="Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images" >标签将验证码图片的URL指向生成验证码的PHP文件。用户输入验证码后,提交表单时,后台的verify_captcha.php

    Ajouter des interférences sonores

    Afin d'améliorer la sécurité du code de vérification, nous pouvons ajouter des interférences sonores à l'image du code de vérification. Voici un exemple de fonction :

    rrreee

    Dans le code ci-dessus, nous sélectionnons aléatoirement les pixels de l'image via une boucle, puis définissons aléatoirement la couleur du bruit et le dessinons sur l'image.

      Utiliser le code de vérification sur la page Web

      🎜🎜Enfin, nous pouvons intégrer l'image du code de vérification générée dans la page Web pour la vérification de l'utilisateur. Voici un exemple de code HTML : 🎜rrreee🎜Dans le code ci-dessus, nous pointons l'URL de l'image du code de vérification vers le fichier PHP qui génère le code de vérification via la balise <img alt="Cas de traitement d'images PHP : Comment implémenter la fonction de code de vérification des images" >. Une fois que l'utilisateur a saisi le code de vérification et soumis le formulaire, le fichier verify_captcha.php en arrière-plan vérifiera si le code de vérification saisi par l'utilisateur est correct. 🎜🎜Grâce aux étapes ci-dessus, nous avons implémenté avec succès la fonction de génération et de vérification des codes de vérification à l'aide de PHP. Grâce aux codes de vérification, nous pouvons augmenter la sécurité du site Web et empêcher les attaques malveillantes et les enregistrements malveillants. 🎜🎜Résumé🎜🎜Cet article explique comment utiliser la bibliothèque GD de PHP pour générer et vérifier les codes de vérification d'image. En générant des caractères aléatoires, en dessinant des caractères sur des images, en ajoutant des interférences sonores et d'autres étapes, nous pouvons implémenter une fonction de code de vérification simple mais efficace. J'espère que cet article pourra être utile pour la mise en œuvre du code de traitement et de vérification des images PHP. 🎜🎜Référence : https://www.php.net/manual/en/book.image.php🎜

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

See all articles