Gerade als ich mit dem Programmieren in PHP angefangen habe, stand ich so manches Mal vor dem Problem, dass mir das Problem nicht klar war…
Alles was ich im Browser gesehen habe, war eine leere, weiße Seite. Keine Fehlermeldung weit und breit…
…auch bekannt als "White Screen Of Death"
.
Um ein Problem lösen zu können, muss man es aber zuerst einmal erkennen.
Deshalb macht es immer Sinn, Fehlermeldungen in PHP während der Entwicklung einzuschalten.
Mittlerweile habe ich Erfahrung gesammelt und dazu gelernt.
Das folgende Code-Snippet steht jetzt immer in meinen Header (oder in einer andere Datei, die auf einzelnen Unterseite der Webseite, an der ich gerade arbeite, angezeigt wird):
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Die ini_set
Funktion versucht Konfigurationen, die eventuell in einer php.ini
vorgenommen wurden, zu überschreiben.
display_errors
ist ein Befehl der bestimmt ob Fehler angezeigt oder versteckt werden. In Kombination mit der Einstellung 1 bestimmt er, Fehler anzuzeigen.
display_startup_errors
findet Fehler in der Startsequenz von PHP. Auch hier legt die Kombination mit dem Wert 1 fest, dass gefundene Fehler ausgeworfen werden.
Diese drei Zeilen zeigen aber leider keine Parsingfehler an…
Um also auch vergessene Klammern oder Semicolons anzeigen zu lassen, kommt dieser Code in die php.ini
Datei (dann Webserver neu starten):
display_errors = on
ODER dieser Code in the .htaccess
Datei:
php_flag display_startup_errors on
php_flag display_errors on
Welche von beiden Versionen du benutzt, hängt vor Allem davon ab auf welche Dateien du als Entwickler Zugriff hast. In der Regel wird das mindestens die .htaccess
Datei sein.
Die Zeile display_errors = on in der php.ini
Datei bewirkt, dass Parsingfehler – also Syntaxfehler, wie zum Beispiel ein vergessenes Semicolon – als Fehlermeldung im Browser ausgegeben werden.
.htaccess
Methode.Der Vorteil bei dieser Variante ist, dass man für die Entwicklung und Distribution verschiedene Dateien werden kann.
Du kannst also für die Entwicklung eine .htaccess
Datei benutzen, wo php_flag display_startup_errors on
und php_flag display_errors on
dir Fehlermeldungen anzeigen.
Für die Distribution – also für die Version einer Webseite oder Applikation die veröffentlicht wird – sollten Fehlermeldungen natürlich nicht ausgegeben werden. Was für die Entwicklung hilfreich ist, würde UserInnen nur unschön ins Auge fallen…
Du hast also eine .htaccess
Datei für die Entwicklung – und bevor du deine Webseite oder Applikation zur Distribution frei gibst, tauschst du diese .htaccess
Datei mit einer aus, wo Fehlermeldungen ausgeschaltet sind.
Das ist schnell und einfach, weil es den Vorteil hat, dass du nicht Zeile für Zeile durchgehen musst, jedes Mal wenn du den Code überarbeiten möchtest (oder musst, weil ein externes Update einen Fehler reingehauen hat).
Hat dir mein Tipp geholfen oder kanntest du ihn bereits?
Welche Methoden benutzt du?
Auf jeden Fall: Danke fürs Lesen! 🙂
Weitere Infos zum PHP Error-Reporting:
https://www.php.net/manual/de/function.error-reporting.php
Komplettes PHP Tutorial für Einsteiger:
https://youtu.be/pWG7ajC_OVo
0 comments on “Wie kann man PHP Fehler anzeigen lassen?”