PHP/Fehlermeldungen: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
K Textersetzung - „z.B.“ durch „z. B. “
 
(15 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.


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 ===
 
=== Code zum 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:


  '''ini_set'''('display_errors',1);
  ini_set('display_errors',1);
  error_reporting(E_ALL|E_STRICT);
  error_reporting(E_ALL|E_STRICT);


=== Code zum Anzeigen der Warnungen ohne Infos ===
=== Anzeigen der Warnungen ohne Infos ===
 
  ini_set('display_errors',1);
  ini_set('display_errors',1);
  error_reporting(E_ALL);
  error_reporting(E_ALL);


=== Code zum Abschalten der Fehlermeldungen ===
=== 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.


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 ===
 
=== Fehlermeldung Via .htaccess-Datei ===
 
Bevorzugt man die Ausgabe der Fehlermeldungen über die .htaccess-Datei kann man diesen Code verwenden:
Bevorzugt man die Ausgabe der Fehlermeldungen über die .htaccess-Datei kann man diesen Code verwenden:


Zeile 37: Zeile 34:
Quelle: [https://impress.org/php-turn-on-or-off-error-reporting/ https://impress.org/php-turn-on-or-off-error-reporting/]
Quelle: [https://impress.org/php-turn-on-or-off-error-reporting/ https://impress.org/php-turn-on-or-off-error-reporting/]


 
== PHP-Fehlermeldungen anschalten ==
== 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:
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 79: Zeile 75:
  }
  }


Line 2: Definiere eine Konstante DEBUG und setze sie auf 'true'
* Line 2: Definiere eine Konstante DEBUG und setze sie auf 'true'
Line 3: Alle Fehlermeldungen werden angezeigt
* Line 3: Alle Fehlermeldungen werden angezeigt
Line 4: Wenn DEBUG gleich 'true'
* Line 4: Wenn DEBUG gleich 'true'
Line 5: Zeige die Fehler auf dem Bildschirm
* 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 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 8: Zeige keine Fehlermeldungen an
Line 9: Schreibe die Fehler in die Log-Datei.
* Line 9: Schreibe die Fehler in die Log-Datei.


== Typen von Fehlermeldungen ==
== Typen von Fehlermeldungen ==
Innerhalb der ''php.ini''-Datei (oder im Script oben) kannst du einstellen, wie genau die Fehlermeldungen sein sollen.
Innerhalb der ''php.ini''-Datei (oder im Script oben) kannst du einstellen, wie genau die Fehlermeldungen sein sollen.


Zeile 96: Zeile 91:
  E_WARNING        - Laufzeit-Warnungen (Nicht-Fatale Fehler)
  E_WARNING        - Laufzeit-Warnungen (Nicht-Fatale Fehler)
  E_PARSE          - Kompiler-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_NOTICE          - Hinweise (z.&nbsp;B.&nbsp;: 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_STRICT          - Hinweis zur besseren Vorwärtskompatibilität des Codes.)
  E_CORE_ERROR      - Fatale Fehler, die auftreten, während PHP startet
  E_CORE_ERROR      - Fatale Fehler, die auftreten, während PHP startet
Zeile 108: Zeile 103:
  E_USER_DEPRECATED - user-generated Kompatibilitäts-Warnungen
  E_USER_DEPRECATED - user-generated Kompatibilitäts-Warnungen


Häufige Einstellungen in der php.ini-Datei sind:
== Häufige Einstellungen in der php.ini-Datei ==


  E_ALL (Zeige alle Fehler, Warnungen und Hinweise einschließlich Kompatibilitäts-Warnungen)
  E_ALL (Zeige alle Fehler, Warnungen und Hinweise einschließlich Kompatibilitäts-Warnungen)
Zeile 117: Zeile 112:
Quelle: https://www.coding.academy/blog/how-to-turn-on-php-error-reporting-in-mamp
Quelle: https://www.coding.academy/blog/how-to-turn-on-php-error-reporting-in-mamp


[[Category:Programmierung]]
[[Kategorie:PHP]]
[[Category: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