PHP/Fehlermeldungen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „z.B.“ durch „z. B. “ |
||
(27 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Fehlermeldungen an-/ausschalten == | == 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. | |||
=== Anzeigen aller Fehler und Warnungen === | |||
=== | |||
Um alle Warnungen und Infos anzuzeigen sollte relativ simpel zu machen sein und in jeder Hostumgebung funktionieren: | Um alle Warnungen und Infos anzuzeigen sollte relativ simpel zu machen sein und in jeder Hostumgebung funktionieren: | ||
Zeile 10: | Zeile 10: | ||
error_reporting(E_ALL|E_STRICT); | error_reporting(E_ALL|E_STRICT); | ||
=== | === Anzeigen der Warnungen ohne Infos === | ||
ini_set('display_errors',1); | ini_set('display_errors',1); | ||
error_reporting(E_ALL); | error_reporting(E_ALL); | ||
=== | === Abschalten der Fehlermeldungen === | ||
error_reporting(0); | error_reporting(0); | ||
Zeile 25: | Zeile 23: | ||
=== Wo sollte der Code platziert werden === | === 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: | |||
=== Fehlermeldung | |||
php_flag display_errors on | php_flag display_errors on | ||
php_value error_reporting 7 | php_value error_reporting 7 | ||
Quelle: [https://impress.org/php-turn-on-or-off-error-reporting/ https://impress.org/php-turn-on-or-off-error-reporting/] | |||
== PHP-Fehlermeldungen anschalten == | |||
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 | <?php | ||
Zeile 49: | Zeile 43: | ||
ini_set('display_errors', 1); | 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 | display_errors = on | ||
error_reporting = E_ALL | 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 | <?php | ||
phpinfo(); | phpinfo(); | ||
?> | |||
Hier ein Skript um Fehlermeldungen an-/auszuschalten, je nachdem, ob man debuggt oder nicht: | |||
<?php | <?php | ||
Zeile 89: | Zeile 75: | ||
} | } | ||
Line 2: | * Line 2: Definiere eine Konstante DEBUG und setze sie auf 'true' | ||
Line 3: | * Line 3: Alle Fehlermeldungen werden angezeigt | ||
Line | * Line 4: Wenn DEBUG gleich 'true' | ||
Line | * Line 5: Zeige die Fehler auf dem Bildschirm | ||
Line | * Line 6: Schalte das Fehler-Logging aus. (Macht keinen Sinn die Fehler aufzuschreiben, wenn diese auf dem Schirm angezeigt werden.) | ||
Line | * Line 8: Zeige keine Fehlermeldungen an | ||
Line | * 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 - Hinweise (z. B. : Benutzen einer uninitialisierten Variable und darauf vertraut, dass sie automatisch initialisiert wird mit einem leeren String.) | |||
E_STRICT - Hinweis zur besseren Vorwärtskompatibilität des Codes.) | |||
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 Hinweise | |||
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 == | |||
E_ALL (Zeige alle Fehler, Warnungen und Hinweise einschließlich Kompatibilitäts-Warnungen) | |||
E_ALL & ~E_NOTICE (Zeige alle Fehler, außer Hinweise) | |||
E_ALL & ~E_NOTICE & ~E_STRICT (Zeige alle Fehler, außer für Hinweise 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 | |||
[[Kategorie:PHP]] |
Aktuelle Version vom 19. Mai 2023, 13:45 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.
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);
Anzeigen der Warnungen ohne Infos
ini_set('display_errors',1); error_reporting(E_ALL);
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
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 - Hinweise (z. B. : Benutzen einer uninitialisierten Variable und darauf vertraut, dass sie automatisch initialisiert wird mit einem leeren String.) E_STRICT - Hinweis zur besseren Vorwärtskompatibilität des Codes.) 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 Hinweise 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
E_ALL (Zeige alle Fehler, Warnungen und Hinweise einschließlich Kompatibilitäts-Warnungen) E_ALL & ~E_NOTICE (Zeige alle Fehler, außer Hinweise) E_ALL & ~E_NOTICE & ~E_STRICT (Zeige alle Fehler, außer für Hinweise 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