PHP/Fehlermeldungen: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Programmierung:phpx:ErrorReporting nach Programmierung:PHP:Error Reporting, ohne dabei eine Weiterleitung anzulegen
K Textersetzung - „z.B.“ durch „z. B. “
 
(29 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= PHP Turn On or Off Error Reporting =
== 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.


Error reporting is useful for debugging purposes. As well, perhaps you have some unimportant PHP warning displaying on your website that you would like to remove. This article will show you how to both display and hide PHP errors and warnings from the user.
=== Anzeigen aller Fehler und Warnungen ===
 
Um alle Warnungen und Infos anzuzeigen sollte relativ simpel zu machen sein und in jeder Hostumgebung funktionieren:
== PHP Code to Display All Errors and Warning Messages ==
 
To display all warnings and notice this is an easy and simple way that should work in most hosting environments:


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


== PHP Code to Turn See Warning Messages and Not Notices ==
=== Anzeigen der Warnungen ohne Infos ===
 
  ini_set('display_errors',1);
  ini_set('display_errors',1);
  error_reporting(E_ALL);
  error_reporting(E_ALL);


== PHP Code to Turn Off Error Reporting ==
=== Abschalten der Fehlermeldungen ===
 
  error_reporting(0);
  error_reporting(0);


Zeile 24: Zeile 22:
  error_reporting(E_ALL|E_STRICT);
  error_reporting(E_ALL|E_STRICT);


=== Where to Place Code to Remove Errors and Warnings ===
=== Wo sollte der Code platziert werden ===
 
Die Codestücke können überall im Skript platziert werden.
You can place the bits of code above just about anywhere on in your PHP code but it has to be above the error or else you will not see any warnings or notices since the code is read from the top down.
* Jedoch sollten sie über dem Fehler platziert werden, da PHP von oben nach unten arbeitet.
 
=== Tip for WordPress Users: Place Code in Your wp-config.php File ===


To turn on or off error reporting site-wide then place the the lines of code above all other PHP in your WordPress site’s wp-config.php file located in your home directory.
=== Fehlermeldung via .htaccess-Datei ===
 
Bevorzugt man die Ausgabe der Fehlermeldungen über die .htaccess-Datei kann man diesen Code verwenden:
== PHP Error Reporting Via .htaccess File ==
 
If you prefer to use your .htaccess file then you can use the following code to display errors.


  php_flag display_errors on
  php_flag display_errors on
  php_value error_reporting 7
  php_value error_reporting 7


Quell: [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 ==
= How to Turn on PHP Error Reporting in MAMP  =
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:
One of my students asked a question this week about error reporting. When following one of the lessons in the [https://www.coding.academy/learn-to-code-courses/php-for-beginners PHP for Beginners course] he should have received an error (intended error) but it did not show. He was curious as to why he did not receive the error as he was supposed to.
 
If you have not set error reporting up within your php.ini file then you will need to edit the file to do this. However, for a beginner, this can be quite daunting. To avoid any unnecessary issues with possible incorrect edits of this important file, you can turn on error reporting within a single script as follows:


  <?php
  <?php
Zeile 53: 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)


Line 3: we are just saying that we want all types of errors to be reported
Für die, die dauerhaft Fehlermeldungen haben wollen, müssen in der php.ini-Datei nach diesen Zeilen suchen:
 
Line 4: this turns on error reporting (the value 1 is on and 0 would be off)
 
For those who wish to delve into their php.ini file then you will need to look for something along the lines of:


  display_errors = on  
  display_errors = on  
  error_reporting = E_ALL
  error_reporting = E_ALL


I am currently using a Mac environment and have MAMP installed. MAMP actually creates several different php.ini files depending on the version of PHP you are using.
*MAMP kreiert verschiedene ''php.ini'', je nachdem welche PHP-Version man benutzt.
*Die ''php.ini''-Dateien findet man unter folgendem Pfad:


You will find the php.ini files in the following location on MAMP:
Applications > MAMP > conf


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:
 
If you are running a Windows system with XAMPP then you should find it here:
 
C:/xampp/php/php.ini
 
If you are not sure where your php.ini file is located then you can write a simple script in PHP and run it in your browser to see the location of the php.ini file:


  <?php
  <?php
  phpinfo();
  phpinfo();
?>


This will display the following:
Hier ein Skript um Fehlermeldungen an-/auszuschalten, je nachdem, ob man debuggt oder nicht:
 
I like to use a configuration script so that I can turn on/off error reporting depending on whether I am debugging or not.


  <?php
  <?php
Zeile 93: Zeile 75:
  }
  }


Line 2: you can set the debug mode to true or false as required
* Line 2: Definiere eine Konstante DEBUG und setze sie auf 'true'
Line 3: this will report all errors
* Line 3: Alle Fehlermeldungen werden angezeigt
Line 5: test if the debug mode is set to true
* Line 4: Wenn DEBUG gleich 'true'
Line 6: turn on error display
* Line 5: Zeige die Fehler auf dem Bildschirm
Line 7: turn off error logging. It does not make much sense to write the error to a log file if you are reporting to the screen
* Line 6: Schalte das Fehler-Logging aus. (Macht keinen Sinn die Fehler aufzuschreiben, wenn diese auf dem Schirm angezeigt werden.)
Line 9: turn off display errors
* Line 8: Zeige keine Fehlermeldungen an
Line 10: turn on the writing of errors to the log file
* Line 9: Schreibe die Fehler in die Log-Datei.


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


Within your php.ini file or within the script above you can specify the level of error reporting you require.
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.&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_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


E_ALL            - All errors and warnings (includes E_STRICT as of PHP 5.4.0)
== Häufige Einstellungen in der php.ini-Datei ==
E_ERROR          - fatal run-time errors
E_RECOVERABLE_ERROR  - almost fatal run-time errors
E_WARNING        - run-time warnings (non-fatal errors)
E_PARSE          - compile-time parse errors
E_NOTICE          - run-time notices (these are warnings which often result from a bug in your code, but it's possible that it was intentional (e.g., using an uninitialized variable and relying on the fact it is automatically initialized to an empty string)
E_STRICT          - run-time notices, enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code
E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's initial startup
E_COMPILE_ERROR  - fatal compile-time errors
E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
E_USER_ERROR      - user-generated error message
E_USER_WARNING    - user-generated warning message
E_USER_NOTICE    - user-generated notice message
E_DEPRECATED      - warn about code that will not work in future versions of PHP
E_USER_DEPRECATED - user-generated deprecation warnings


Common settings within a php.ini file or the PHP script above include:
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)


E_ALL (Show all errors, warnings and notices including coding standards.)
Quelle: https://www.coding.academy/blog/how-to-turn-on-php-error-reporting-in-mamp
E_ALL & ~E_NOTICE  (Show all errors, except for notices)
E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding standards warnings.)
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)


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