PHP/Fehlermeldungen: Unterschied zwischen den Versionen
Zeile 96: | Zeile 96: | ||
E_WARNING - Laufzeit-Warnungen (Nicht-Fatale Fehler) | E_WARNING - Laufzeit-Warnungen (Nicht-Fatale Fehler) | ||
E_PARSE - Kompiler-Fehler | E_PARSE - Kompiler-Fehler | ||
E_NOTICE - Laufzeit-Notizen (Warnungen, die meistens aus einem Fehler im Code stammen, jedoch absichtlich eingebaut sein können (z.B.: Benutzen einer | E_NOTICE - Laufzeit-Notizen (Warnungen, die meistens aus einem Fehler im Code stammen, jedoch absichtlich eingebaut sein können (z.B.: Benutzen einer uninitialisierten Variable und darauf vertraut, dass sie automatisch initialisiert wird mit einem leeren String.) | ||
E_STRICT - Laufzeit-Notizen, erlaubt PHP Vorschläge am Code, um bestmögliche Vorwärtskompatibilität für deinen Code zu sorgen.) | E_STRICT - Laufzeit-Notizen, erlaubt PHP Vorschläge am Code, um bestmögliche Vorwärtskompatibilität für deinen Code zu sorgen.) | ||
E_CORE_ERROR - Fatale Fehler, die auftreten, während PHP startet | E_CORE_ERROR - Fatale Fehler, die auftreten, während PHP startet |
Version vom 6. August 2020, 07:49 Uhr
Fehlermeldungen an-/ausschalten
Das Anzeigen von Fehlern ist fürs Debuggen sehr nützlich. Andersherum will man auch nervige PHP-Warnungen ausblenden. Dieser Artikel zeigt, wie man Fehler anzeigt und Warnungen ausschaltet.
Code zum Anzeigen aller Fehler und Warnungen
Um alle Warnungen und Infos anzuzeigen sollte relativ simpel zu machen sein und in jeder Hostumgebung funktionieren:
ini_set('display_errors',1); error_reporting(E_ALL|E_STRICT);
Code zum Anzeigen der Warnungen ohne Infos
ini_set('display_errors',1); error_reporting(E_ALL);
Code zum Abschalten der Fehlermeldungen
error_reporting(0);
or
ini_set('display_errors',0); error_reporting(E_ALL|E_STRICT);
Wo sollte der Code platziert werden
Die Codestücke können überall im Skript platziert werden. Jedoch sollten sie über dem Fehler platziert werden, da PHP von oben nach unten arbeitet.
Fehlermeldung Via .htaccess-Datei
Bevorzugt man die Ausgabe der Fehlermeldungen über die .htaccess-Datei kann man diesen Code verwenden:
php_flag display_errors on php_value error_reporting 7
Quelle: https://impress.org/php-turn-on-or-off-error-reporting/
PHP-Fehlermeldungen anschalten in MAMP(Mac)
Sofern man in der php.ini-Datei das "error reporting" nicht gesetzt hat, muss man die Datei bearbeiten. Man kann aber auch in einem Skript diese folgenden Codezeilen schreiben um Fehlermeldungen anzuzeigen:
<?php error_reporting(E_ALL);
ini_set('display_errors', 1);
- Alle Meldungen (Fehler, Warnungen, Notizen) sollen gemeldet werden
- Schaltet die Fehlermeldungen ein (Setzt man sie auf 0, werden sie abgeschaltet)
Für die, die dauerhaft Fehlermeldungen haben wollen, müssen in der php.ini-Datei nach diesen Zeilen suchen:
display_errors = on error_reporting = E_ALL
- MAMP kreiert verschiedene php.ini, je nachdem welche PHP-Version man benutzt.
- Die php.ini-Dateien findet man unter folgendem Pfad:
Applications > MAMP > conf
Wenn man nicht sicher ist, wo sich die php.ini-Datei befindet, schreibt man einen einfachen Skript, der in einem Browser läuft, um zu sehen, wo sich die php.ini befindet:
<?php phpinfo(); ?>
Hier ein Skript um Fehlermeldungen an-/auszuschalten, je nachdem, ob man debuggt oder nicht:
<?php define('DEBUG', true); error_reporting(E_ALL); if(DEBUG == true){ display_errors(true); log_errors(false); } else { display_errors(false); log_errors(true); }
Line 2: Definiere eine Konstante DEBUG und setze sie auf 'true' Line 3: Alle Fehlermeldungen werden angezeigt Line 4: Wenn DEBUG gleich 'true' Line 5: Zeige die Fehler auf dem Bildschirm Line 6: Schalte das Fehler-Logging aus. (Macht keinen Sinn die Fehler aufzuschreiben, wenn diese auf dem Schirm angezeigt werden.) Line 8: Zeige keine Fehlermeldungen an Line 9: Schreibe die Fehler in die Log-Datei.
Typen von Fehlermeldungen
Innerhalb der php.ini-Datei (oder im Script oben) kannst du einstellen, wie genau die Fehlermeldungen sein sollen.
E_ALL - Alle Fehler und Warnungen (beinhaltet E_STRICT seit PHP 5.4.0) E_ERROR - Fatale Laufzeitfehler E_RECOVERABLE_ERROR - fast fatale Laufzeitfehler E_WARNING - Laufzeit-Warnungen (Nicht-Fatale Fehler) E_PARSE - Kompiler-Fehler E_NOTICE - Laufzeit-Notizen (Warnungen, die meistens aus einem Fehler im Code stammen, jedoch absichtlich eingebaut sein können (z.B.: Benutzen einer uninitialisierten Variable und darauf vertraut, dass sie automatisch initialisiert wird mit einem leeren String.) E_STRICT - Laufzeit-Notizen, erlaubt PHP Vorschläge am Code, um bestmögliche Vorwärtskompatibilität für deinen Code zu sorgen.) E_CORE_ERROR - Fatale Fehler, die auftreten, während PHP startet E_CORE_WARNING - Warnungen (Nicht-Fatale Fehler), die auftreten, während PHP startet E_COMPILE_ERROR - Fatale Kompilier Fehler E_COMPILE_WARNING - Warnungen des Kompilers (Nicht-Fatale Fehler) E_USER_ERROR - user-generated Fehler-Meldungen E_USER_WARNING - user-generated Warnungen E_USER_NOTICE - user-generated Notizen E_DEPRECATED - Warnungen über Code, das in zukünftigen Versionen von PHP nicht mehr funktionieren wird. E_USER_DEPRECATED - user-generated Kompatibilitäts-Warnungen
Häufige Einstellungen in der php.ini-Datei sind:
E_ALL (Zeige alle Fehler, Warnungen und Notizen einschließlich Kompatibilitäts-Warnungen) E_ALL & ~E_NOTICE (Zeige alle Fehler, außer Notizen) E_ALL & ~E_NOTICE & ~E_STRICT (Zeige alle Fehler, außer für Notizen und Kompatibilitäts-Warnungen) E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Zeige nur Fehler an)
Quelle: https://www.coding.academy/blog/how-to-turn-on-php-error-reporting-in-mamp