


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
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.
- 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.
- 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; }
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.
- 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); }
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格式的图片。
- 添加噪点干扰
为了提高验证码的安全性,我们可以在验证码图片上添加一些噪点干扰。以下是一个示例函数:
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; }
在上述代码中,我们通过循环来随机选择图片中的像素点,然后随机设定噪点的颜色并绘制到图片上。
- 将验证码用于网页
最后,我们可以将生成的验证码图片嵌入到网页中,供用户验证。以下是一个示例的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>
在上述代码中,我们通过<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 :
rrreeeDans 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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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

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.

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

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

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

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
