Maison  >  Article  >  développement back-end  >  Comment résoudre le problème selon lequel PHP ne peut pas afficher l'image du code de vérification

Comment résoudre le problème selon lequel PHP ne peut pas afficher l'image du code de vérification

藏色散人
藏色散人original
2020-07-30 09:30:302987parcourir

Solution au problème selon lequel PHP ne peut pas afficher l'image du code de vérification : 1. Supprimez le point-virgule dans ";extension=php_gd2.dll" 2. Changez le format d'encodage du code en un format sans nomenclature ; 3. Utilisez la fonction "ob_clean ()" pour vider le cache.

Comment résoudre le problème selon lequel PHP ne peut pas afficher l'image du code de vérification

Recommandé : "Tutoriel vidéo PHP"

Questions


Aujourd'hui, j'ai créé un nouvel hôte virtuel localement et déployé un petit site Web php que j'avais écrit auparavant. Parce que j'utilisais l'environnement intégré wamp auparavant, cette situation ne s'est pas produite. Maintenant, je découvre soudainement que le code de vérification ne peut pas être généré.

J'ai donc commencé mon voyage pour trouver des bugs. J'ai cherché de nombreuses solutions sur Internet, et je l'ai finalement résolu. Maintenant, je le partage comme suit :

bug1

Quand. la situation ci-dessus se produit, la solution finale est Une erreur fondamentale est que vous oubliez probablement d'installer le module gd en php.

Dans l'environnement de fenêtre, il vous suffit de trouver

;extension=php_gd2.dll

dans le fichier php.ini et de supprimer le point-virgule devant. Après avoir redémarré Apache, vous pouvez le trouver dans phpinfo()

Si vous êtes dans un environnement Ubuntu, vous devez installer le module gd La commande est

sudo apt-get install php5-gd
Après l'installation, vous pouvez également voir le module ci-dessus.

bug2

Si vous constatez que cela ne fonctionne toujours pas après l'installation ci-dessus, cela peut être le problème suivant

Votre code utilise probablement quelque chose comme S'il est modifié avec un éditeur de texte tel que editpuls ou notepad++, leur format d'encodage par défaut est utf-8 avec BOM.

La nomenclature UTF-8 est également appelée signature UTF-8. En fait, la nomenclature UTF-8 n'a aucun effet sur UFT-8. Elle est ajoutée pour prendre en charge UTF-16 et UTF-32

BOM, la signature de BOM signifie indiquer à l'éditeur quel encodage le fichier actuel utilise pour faciliter l'identification de l'éditeur, mais bien que la nomenclature soit dans l'éditeur

Il ne sera pas affiché, mais une sortie sera générée, tout comme une ligne vierge supplémentaire.

Généralement, j'utilise le format sans nomenclature UTF-8
Vous devez donc changer le format d'encodage du code en

format sans nomenclature.

bug3

Si vous suivez les deux étapes ci-dessus et constatez que cela ne fonctionne toujours pas, alors vous devez utiliser votre atout carte.

Utilisez ob_clean() et videz le cache.

La fonction de ob_clean est de supprimer le contenu du tampon de sortie. Si vous avez de nombreux fichiers image générés, vous devez y accéder correctement.

	public function create()
	{
		ob_clean();
		$a = new verify();
		session::set('captcha', strtolower($a->create(4, 15)));
		view::assign("captcha", $a);
		view::display("captcha");
		exit(0);
	}

Maintenant, vous pouvez voir que c'est revenu à la normale



Remarque : si vous utilisez un php supérieur version, alors les variables non définies ne peuvent pas être utilisées, sinon des erreurs de notification seront signalées $new_number et $_SESSION['check_checks'] doivent être jugées avec isset avant utilisation ou vous utilisez l'ancien code. Si c'est le cas, ajoutez error_reporting(E_ALL) au début & ~E_NOTICE); protège les erreurs de notification (non recommandé), utilisez donc isset() pour vous assurer qu'il est défini. Sinon, le code de vérification risque de ne pas s'afficher.

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