PHP-Fehler - Fehlermeldung aktivieren und error anzeigen in PHP

PHP-Fehler: Fehlermeldungen anzeigen

Ole Mai
Inhaltsverzeichnis
Dauer: 6 Min.
Dokumentation
Niveau: 1/5

Lernen Sie, wie Sie PHP-Fehlermeldungen auf Ihrer Webseite anzeigen können. Die richtige Konfiguration der Fehleranzeige ist entscheidend für die effektive Fehlersuche und Fehlerbehebung.

Wir werden auch auf die verschiedenen Arten von PHP-Fehlern eingehen und wie diese verwaltet und angezeigt werden können.

PHP-Fehlerarten

Bevor wir uns mit den verschiedenen Methoden zur Fehleranzeige befassen, ist es wichtig, die verschiedenen Arten von Fehlern in PHP zu verstehen.

PHP unterscheidet zwischen verschiedenen Fehlerarten, die unterschiedliche Schweregrade und Bedeutungen haben:

  1. E_ERROR: Schwerwiegende Laufzeitfehler. Diese zeigen normalerweise an, dass das Skript gestoppt wurde.
  2. E_WARNING: Laufzeitwarnungen. Diese sind nicht so schwerwiegend wie E_ERROR-Fehler, aber trotzdem sollten sie behoben werden.
  3. E_PARSE: Syntaxfehler, die beim Parsen des Skripts auftreten.
  4. E_NOTICE: Laufzeithinweise. Diese weisen auf mögliche Probleme hin, die möglicherweise kein Fehler sind.
  5. E_CORE_ERROR: Schwerwiegende Fehler, die während der PHP-Initialisierung auftreten.
  6. E_CORE_WARNING: Warnungen, die während der PHP-Initialisierung auftreten.
  7. E_COMPILE_ERROR: Schwerwiegende Fehler, die vom Zend-Scripting-Engine erkannt werden.
  8. E_COMPILE_WARNING: Warnungen, die vom Zend-Scripting-Engine erkannt werden.
  9. E_USER_ERROR: Benutzerdefinierte Fehlermeldungen, die vom Entwickler ausgelöst werden.
  10. E_USER_WARNING: Benutzerdefinierte Warnungen, die vom Entwickler ausgelöst werden.
  11. E_USER_NOTICE: Benutzerdefinierte Hinweise, die vom Entwickler ausgelöst werden.
  12. E_STRICT: Vorschläge zur Verbesserung der Codekompatibilität.
  13. E_RECOVERABLE_ERROR: Schwerwiegende Fehler, bei denen ein Skript möglicherweise weiter ausgeführt werden kann.
  14. E_DEPRECATED: Hinweise auf veraltete Funktionen, die in zukünftigen PHP-Versionen entfernt werden.
  15. E_USER_DEPRECATED: Benutzerdefinierte Hinweise auf veraltete Funktionen, die vom Entwickler ausgelöst werden.

Fehleranzeige in der php.ini konfigurieren

Die php.ini-Datei ist die zentrale Konfigurationsdatei für PHP. In dieser Datei können Sie festlegen, welche Fehler angezeigt werden sollen und welche nicht. Hier sind die grundlegenden Schritte, um die Fehleranzeige in der php.ini zu konfigurieren:

Öffnen Sie die php.ini-Datei

Die Datei befindet sich in der Regel im PHP-Installationsverzeichnis auf Ihrem Server.

Suchen Sie nach error_reporting

Ändern Sie den Wert entsprechend Ihren Anforderungen, zum Beispiel: error_reporting = E_ALL

Diese Einstellung zeigt alle Fehler und Warnungen an, mit Ausnahme von E_STRICT. Um nur schwerwiegende Fehler anzuzeigen, verwenden Sie stattdessen:

error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR

Suchen Sie nach display_errors

Ändern Sie den Wert auf On, um die Fehler direkt auf der Webseite anzuzeigen: display_errors = On Um die Anzeige von Fehlern auf der Webseite zu deaktivieren, setzen Sie den Wert auf Off: display_errors = Off

Speichern Sie die php.ini-Datei

Starten Sie nun Ihren Webserver neu, damit die Änderungen wirksam werden.

Fehleranzeige mit ini_set() und error_reporting() steuern

Sie können die Fehleranzeige auch direkt in Ihrem PHP-Skript steuern, indem Sie die ini_set()-Funktion und die error_reporting()-Funktion verwenden. Hier ist ein Beispiel, wie Sie alle Fehler anzeigen können:

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

Um nur schwerwiegende Fehler anzuzeigen, verwenden Sie stattdessen:

ini_set('display_errors', '1');
error_reporting(E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR);

Um die Fehleranzeige zu deaktivieren, verwenden Sie:

ini_set('display_errors', '0');

Beachten Sie, dass diese Methode die Fehleranzeige nur für das aktuelle Skript ändert und keine globalen Änderungen an der PHP-Konfiguration vornimmt.

Fehleranzeige mit .htaccess steuern

Wenn Sie einen Apache-Webserver verwenden, können Sie die PHP-Fehleranzeige auch über die .htaccess-Datei steuern. Fügen Sie dazu die folgenden Zeilen hinzu, um alle Fehler anzuzeigen:

php_flag display_errors On
php_value error_reporting E_ALL

Um nur schwerwiegende Fehler anzuzeigen, verwenden Sie stattdessen:

php_flag display_errors On
php_value error_reporting "E_ERROR | E_PARSE | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR"

Um die Fehleranzeige zu deaktivieren, verwenden Sie:

php_flag display_errors Off

Eigene Fehlerbehandlungsfunktionen

PHP ermöglicht es Ihnen auch, benutzerdefinierte Fehlerbehandlungsfunktionen zu erstellen, um die Anzeige und Protokollierung von Fehlern zu steuern.

Mit der Funktion set_error_handler() können Sie Ihre eigene Fehlerbehandlungsfunktion angeben, die aufgerufen wird, wenn ein Fehler auftritt.

Hier ist ein Beispiel für eine benutzerdefinierte Fehlerbehandlungsfunktion:

function custom_error_handler($errno, $errstr, $errfile, $errline) {
    echo "Fehler: [$errno] $errstr - $errfile:$errline";
    die();
}

set_error_handler("custom_error_handler");

Diese benutzerdefinierte Funktion zeigt den Fehlercode, die Fehlermeldung und die Datei und Zeile, in der der Fehler aufgetreten ist, an. Sie können die Funktion nach Ihren Bedürfnissen anpassen, um die Fehlerausgabe oder die Fehlerprotokollierung zu steuern.

Zusammenfassung

In diesem Artikel haben wir Ihnen verschiedene Methoden zur Anzeige von PHP-Fehlern vorgestellt. Wir haben die verschiedenen Fehlerarten in PHP besprochen und gezeigt, wie Sie die Fehleranzeige in der php.ini-Datei, mit ini_set() und error_reporting() oder über die .htaccess-Datei konfigurieren können.

Schließlich haben wir Ihnen auch erklärt, wie Sie benutzerdefinierte Fehlerbehandlungsfunktionen erstellen können, um die Anzeige und Protokollierung von Fehlern zu steuern.

Die richtige Konfiguration der Fehleranzeige ist entscheidend für die effektive Fehlersuche und Fehlerbehebung in PHP-Anwendungen.

Je nach Ihren Anforderungen und der Umgebung, in der Ihre Anwendung läuft, können Sie eine oder mehrere der vorgestellten Methoden verwenden, um PHP-Fehler effektiv zu verwalten und anzuzeigen.

Denken Sie daran, dass es in einer Produktionsumgebung ratsam ist, die Fehleranzeige auf der Webseite zu deaktivieren und stattdessen Fehler in Logdateien zu protokollieren, um die Sicherheit Ihrer Anwendung und die Privatsphäre Ihrer Benutzer zu gewährleisten.

Wir hoffen, dass dieser Artikel Ihnen dabei hilft, PHP-Fehler besser zu verstehen und effizienter zu behandeln.

Mit diesen Informationen sind Sie nun in der Lage, Fehlermeldungen in PHP gezielt einzusetzen, um Ihre Webanwendungen zu optimieren und mögliche Probleme in Ihrem Code schneller zu identifizieren und zu beheben.

FAQ – Häufig gestellte Fragen

Im Folgenden möchten wir die meistgestellten Fragen zu Fehlermeldungen in PHP beantworten.

Warum werden meine PHP-Fehler nicht angezeigt?

Wenn Sie keine PHP-Fehlermeldungen sehen, kann das an verschiedenen Faktoren liegen:

Die display_errors-Einstellung in der php.ini-Datei ist auf Off gesetzt.
Die Fehleranzeige wurde in Ihrem PHP-Skript mit ini_set('display_errors', '0') deaktiviert.
Die Fehleranzeige wurde in der .htaccess-Datei deaktiviert.

Überprüfen Sie die entsprechenden Einstellungen und passen Sie sie an, um die Fehleranzeige zu aktivieren.

Wie kann ich PHP-Fehler in einer Logdatei protokollieren?

Um PHP-Fehler in einer Logdatei zu protokollieren, müssen Sie die folgenden Einstellungen in Ihrer php.ini-Datei anpassen:

log_errors = On error_log = /pfad/zur/logdatei.log

Ersetzen Sie /pfad/zur/logdatei.log durch den tatsächlichen Pfad zur gewünschten Logdatei. Achten Sie darauf, dass der Webserver Schreibzugriff auf die angegebene Datei hat.

Sollte ich PHP-Fehler auf meiner Produktionswebsite anzeigen?

Es wird generell empfohlen, die Anzeige von PHP-Fehlern auf Produktionswebsites zu deaktivieren.

Fehlermeldungen können sensible Informationen über Ihre Anwendung und den Server enthalten, die von Angreifern ausgenutzt werden könnten.

Stattdessen sollten Sie Fehler in Logdateien protokollieren und diese regelmäßig überprüfen.

Wie kann ich verhindern, dass bestimmte Fehlerarten angezeigt werden?

Um bestimmte Fehlerarten zu unterdrücken, können Sie die error_reporting()-Funktion in Ihrem PHP-Skript verwenden.

Zum Beispiel, um alle Fehler außer E_NOTICE-Fehlern anzuzeigen, verwenden Sie:

error_reporting(E_ALL & ~E_NOTICE);

Wie kann ich benutzerdefinierte Fehlermeldungen erstellen?

Um benutzerdefinierte Fehlermeldungen zu erstellen, können Sie die trigger_error()-Funktion verwenden.

Diese Funktion erlaubt es Ihnen, benutzerdefinierte Fehlermeldungen auszulösen, die von der aktuell konfigurierten Fehlerbehandlungsfunktion verarbeitet werden. Zum Beispiel:

if ($some_condition) { trigger_error("Ein benutzerdefinierter Fehler ist aufgetreten", E_USER_ERROR); }

In diesem Beispiel wird ein benutzerdefinierter E_USER_ERROR ausgelöst, wenn die Variable $some_condition wahr ist.

Ole Mai
Ole Mai
Ole beschäftigt sich mit der Prozessoptimierung bei Gegenfeld und fokussiert sich auf die Themen Marketing und Webentwicklung.
Weitere Ressourcen

News per E-Mail

Hochwertige Lerninhalte
Ratgeber und Kurse – direkt ins Postfach.
Gegenfeld Newsletter

Keine Beratungsleistung

Die Inhalte auf dieser Website stellen keine Finanz-, Steuer- oder Rechtsberatung dar und ersetzen diese auch nicht.

Bitte wenden Sie sich bei Fragen an einen entsprechenden Finanz- oder Steuerberater oder Fachanwalt.