Heim > Artikel > Backend-Entwicklung > So lösen Sie das Problem, dass PHP das Bild des Bestätigungscodes nicht anzeigen kann
Lösung für das Problem, dass PHP das Verifizierungscodebild nicht anzeigen kann: 1. Entfernen Sie das Semikolon in „;extension=php_gd2.dll“ 2. Ändern Sie das Codierungsformat des Codes in ein BOM-freies Format; 3. Verwenden Sie die Funktion „ob_clean()“, um den Cache zu leeren.
Empfohlen: „PHP-Video-Tutorial“
Heute habe ich lokal einen neuen virtuellen Host erstellt und eine kleine PHP-Website bereitgestellt, die ich zuvor geschrieben habe. Da ich zuvor die integrierte Wamp-Umgebung verwendet habe, ist diese Situation nicht aufgetreten. Jetzt stelle ich plötzlich fest, dass der Bestätigungscode nicht generiert werden kann.
Also habe ich mich auf die Suche nach Fehlern gemacht und sie schließlich wie folgt gelöst:
Wenn der Wenn die obige Situation auftritt, lautet die endgültige Lösung: Ein grundlegender Fehler besteht darin, dass Sie wahrscheinlich vergessen haben, das GD-Modul in PHP zu installieren.
In der Windows-Umgebung müssen Sie nur
;extension=php_gd2.dll
in der php.ini-Datei finden und das Semikolon davor entfernen. Nach dem Neustart von Apache finden Sie dies in phpinfo()
Wenn Sie sich in einer Ubuntu-Umgebung befinden, müssen Sie das GD-Modul installieren. Der Befehl lautet
sudo apt-get install php5-gd
Nach der Installation können Sie auch das obige Modul sehen.
Wenn Sie feststellen, dass es nach der oben genannten Installation immer noch nicht funktioniert, liegt möglicherweise das folgende Problem vor:
Ihr Code verwendet wahrscheinlich etwas wie „If edited“. Mit einem Texteditor wie Editpuls oder Notepad++ ist ihr Standardkodierungsformat UTF-8 mit BOM.
UTF-8 BOM wird auch UTF-8-Signatur genannt. Tatsächlich hat UTF-8 BOM keine Auswirkung auf UFT-8. Es wurde hinzugefügt, um UTF-16 und UTF-32 zu unterstützen >
Stückliste, Stücklistensignatur bedeutet, dem Editor mitzuteilen, welche Codierung die aktuelle Datei verwendet, um die Identifizierung des Editors zu erleichtern, obwohl sich die Stückliste im Editor befindet
Es wird nicht angezeigt, aber es wird eine Ausgabe generiert, genau wie eine zusätzliche Leerzeile. Im Allgemeinen verwende ich das UTF-8-Stücklisten-freie Format.
Stücklisten-freie Format ändern.
Wenn Sie die beiden oben genannten Schritte durchlaufen und feststellen, dass es immer noch nicht funktioniert, müssen Sie Ihren Trumpf einsetzen Karte.
Verwenden Sie ob_clean() und leeren Sie den Cache.
Die Funktion von ob_clean besteht darin, den Inhalt im Ausgabepuffer zu verwerfen. Wenn Sie viele generierte Bilddateien haben, müssen Sie regelmäßig auf diese zugreifen.
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); }
Jetzt können Sie sehen, dass es wieder normal ist
Hinweis: Wenn Sie höheres PHP verwenden Version, dann können undefinierte Variablen nicht verwendet werden, andernfalls werden Hinweisfehler gemeldet. $new_number und $_SESSION['check_checks'] müssen vor der Verwendung mit isset beurteilt werden, oder Sie verwenden alten Code Wenn ja, fügen Sie error_reporting(E_ALL & ~E_NOTICE); schirmt Fehler ab (nicht empfohlen), also verwenden Sie isset(), um sicherzustellen, dass es definiert ist. Andernfalls wird der Bestätigungscode möglicherweise nicht angezeigt.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass PHP das Bild des Bestätigungscodes nicht anzeigen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!