Heim > Artikel > PHP-Framework > Was soll ich tun, wenn thinkphp keine Bilder anzeigen kann?
Ich bin heute auf einen sehr seltsamen Fehler gestoßen, das heißt, ich habe ein PHP-Programm geschrieben, das normalerweise lokal ausgeführt wird, aber wenn es auf dem Server von Partei A veröffentlicht wird, kann der Bestätigungscode nicht angezeigt werden.
Verwandte Empfehlungen: „ThinkPHP Tutorial“
Die konkrete Erscheinung besteht darin, dass im Chrome-Browser ein kleines gesprungenes Bildsymbol angezeigt wird . Klicken Sie mit der rechten Maustaste auf das Bild, um es in einem neuen Fenster zu öffnen. Es handelt sich immer noch um ein kleines gebrochenes Bild und nicht um eine Fehlermeldung (wenn die xdebug-Erweiterung und die PHP-Fehlerberichterstattung aktiviert sind). Es gibt ein Problem mit dem Verifizierungscode-Generierungsprozess:
1. Überprüfen Sie, ob die GD-Bibliothek korrekt installiert ist Für die Installation empfiehlt Windows die Verwendung von apt oder pecl. Die integrierte Umgebung enthält häufig verwendete Erweiterungen. Klicken Sie einfach mit der rechten Maustaste, um sie zu öffnen. (Gilt für Situationen, in denen das Verifizierungscodebild eine Fehlermeldung und eine Reihe verstümmelter Zeichen anzeigt, wenn es in einem neuen Fenster geöffnet wird. Wenn eine Fehlermeldung angezeigt wird, debuggen Sie bitte entsprechend der Fehlermeldung.)
2. Überprüfen Sie, ob die vom Bestätigungscode aufgerufene Schriftart fehlt. Einige von den Verifizierungscode-Komponenten aufgerufene Schriftarten sind nicht auf dem Zielcomputer installiert. Dies erfordert eine Analyse des Quellcodes des Verifizierungscode-Moduls. Ich verwende den offiziellen ThinkPHP-Quellcode in sellertopthinkthink-captchaassets. Sie können sehen, dass dieses Bestätigungscode-Plugin über eine eigene Schriftart verfügt, sodass der Bestätigungscode von ThinkPHP grundsätzlich nicht benötigt wird Problem mit der Schriftart: Wenn es sich um ein anderes Bestätigungscode-Plugin handelt, müssen Sie diesen Ort dennoch überprüfen.
3. Laden Sie das fehlerhafte Bestätigungscode-Bild und das normale Test-Verifizierungscode-Bild herunter und verwenden Sie Notepad zum Anzeigen und Vergleichen.
Das obige Bild ist ein Notizblock des Verifizierungscodebildes in der lokalen Umgebung. Wir verwenden einen professionelleren Hexadezimaleditor, um die Dateiunterschiede zu analysieren.
Wie im Bild gezeigt, haben wir festgestellt, dass die fehlerhafte Datei genau den gleichen Inhalt hat, außer dass davor Nummern wie EF BB BF stehen Dass PHP beim Rendern des Bildes zu viele Fehler aufweist, liegt meiner Meinung nach daran, dass es keinen professionellen Code-Editor auf dem Server gibt. Daher hat das Betriebs- und Wartungspersonal den PHP-Code mit dem normalen Windows-Notepad geändert, was dazu geführt hat Hinzufügung dieses Stücklistenkopfes.
Wenn es der dritte Grund ist, gibt es zwei Lösungen. Eine besteht darin, ob_clean zu verwenden, um den Ausgabepuffer von PHP zu löschen, bevor der Imagepng-Ausgabebildcode des Bestätigungscodes aufgerufen wird. Es werden auch einige Tools verwendet, um die Stückliste des Codes stapelweise zu entfernen.
Ich verwende hier ob_clean und füge ob_clean() vor Zeile 203 von Captcha.php, der Hauptdatei von think-captcha, hinzu, damit das Problem ein für alle Mal gelöst werden kann . Wenn Sie strenge Anforderungen an Leistung und Stabilität haben, wird empfohlen, Tools zum stapelweisen Entfernen von Stücklisten zu verwenden, was sicherer ist. Gleichzeitig wird empfohlen, jederzeit einen professionellen Code-Editor wie Editplus auf dem Server zu installieren. Verwenden Sie nicht Windows Notepad, um den Code zu ändern.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn thinkphp keine Bilder anzeigen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!