Wie bekomme ich PHP-Fehler angezeigt?

Lesezeit: 6 Minuten

Wie bekomme ich PHP Fehler angezeigt
Abs

Ich habe meine PHP-INI-Datei überprüft (php.ini) und display_errors eingestellt ist und auch Fehlerberichte sind E_ALL. Ich habe meinen Apache-Webserver neu gestartet.

Ich habe diese Zeilen sogar an den Anfang meines Skripts gesetzt, und es fängt nicht einmal einfache Parsing-Fehler ab. Zum Beispiel deklariere ich Variablen mit a "$" und ich schließe keine Aussagen";". Aber alle meine Skripte zeigen eine leere Seite auf diesen Fehlern, aber ich möchte die tatsächlich sehen Fehler in meiner Browserausgabe.

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

Was bleibt zu tun?

  • Ich muss noch genau herausfinden, warum dies manchmal funktioniert und nicht andere, aber für alle, die schnell Fehler in einem PHP-Skript umschalten (oder sie über eine $_REQUEST Parameter) werden diese beiden Zeilen die meiste Zeit funktionieren.

    – Brandonscript

    28. Oktober 2013 um 20:15 Uhr

  • Nun, Sie können Details des Fehlers sehen, indem Sie xdebug aus der PHP-INI-Datei aktivieren.

    – Juwelhuq

    13. Januar 2016 um 10:14 Uhr

  • Die meisten spezifischen Editoren / IDEs wie z. B. Notepad ++, Eclipse haben eine integrierte Syntaxprüfung und Hervorhebung. Sie zeigen Ihnen die von Ihnen beschriebenen Probleme. Bitte schalten Sie die Anzeige von Fehlern nicht auf einem Live-System ein. Hacker werden das lieben, denn in den meisten Fällen werden Pfade angezeigt. Sie können Fehler-/Ausnahmehandler definieren. In diesem Handler können Sie das Problem protokollieren und eine E-Mail an den Entwickler senden, damit er es sofort beheben kann, wenn ein Problem auftritt. sehen php.net/manual/en/function.set-error-handler.php und php.net/manual/en/function.set-exception-handler.php

    – Alexander Behling

    10. Dezember 2020 um 8:08 Uhr

1647105249 861 Wie bekomme ich PHP Fehler angezeigt
Lust auf Johannes

Das funktioniert bei mir immer:

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

Dies führt jedoch nicht dazu, dass PHP Parsing-Fehler anzeigt – die einzige Möglichkeit, diese Fehler anzuzeigen, besteht darin, Ihre php.ini mit dieser Zeile zu ändern:

display_errors = on

(Falls du keinen Zugriff hast php.iniund fügen Sie dann diese Zeile ein .htaccess könnte auch funktionieren):

php_flag display_errors 1

  • Beachten Sie auch, dass Sie diese 3 Zeilen verwenden können und dann include(‘fileImWorkingOn.php’);. Dann können Sie auch die Syntaxfehler abfangen!

    – Schnapp

    8. Mai 2015 um 18:11 Uhr


  • Obwohl ich kein SysOps bin, denke ich, dass mehr Leute eine .htaccess-Datei als eine php.ini haben, und diese beiden würden vor dem Parsen kommen, richtig? php_flag display_errors 1 für .htaccess

    – Ryan Taylor

    9. Juli 2015 um 21:58 Uhr


  • E_ALL reicht nicht aus, um angezeigt zu werden alle Fehler in PHP 5.3. “E_STRICT wurde ein Teil von E_ALL in 5.4.0″ – PHP-Handbuch Du brauchst E_ALL | E_STRICT oder -1 in dieser Version.

    – Gerhard Roche

    14. September 2016 um 4:12 Uhr


  • Mann, ich werde diese drei Linien tätowieren

    – Juan C. Roldán

    25. Mai 2021 um 22:42 Uhr

  • @JuanC.Roldán Ich komme buchstäblich dreimal pro Woche auf diese Antwort zurück.

    – glinde93

    30. September 2021 um 12:45 Uhr

Wie bekomme ich PHP Fehler angezeigt
Michael Madson

Sie können keine Parsing-Fehler abfangen, wenn Sie die Fehlerausgabe zur Laufzeit aktivieren, da die Datei analysiert wird, bevor tatsächlich etwas ausgeführt wird (und da dabei ein Fehler auftritt, wird nichts ausgeführt). Sie müssen die tatsächliche Serverkonfiguration so ändern, dass display_errors aktiviert ist und die entsprechende error_reporting-Ebene verwendet wird. Wenn Sie keinen Zugriff auf php.ini haben, können Sie je nach Server möglicherweise .htaccess oder ähnliches verwenden.

Diese Frage kann zusätzliche Informationen liefern.

1647105250 739 Wie bekomme ich PHP Fehler angezeigt
Benutzer1803477

In Ihrem php.ini:

display_errors = on

Starten Sie dann Ihren Webserver neu.

  • +①. Auf meinem Ubuntu /etc/php5/apache2/php.ini

    – m93a

    23. Februar 2015 um 17:44 Uhr


  • zum neu starten (Debian, Ubuntu usw.) sudo service apache2 restart

    – Peter Krauß

    1. September 2015 um 13:04 Uhr


  • Für Neustart unter OS X sudo apachectl -k restart.

    – Erbse

    10. Januar 2016 um 19:53 Uhr

  • lustige Tatsache: Sie können Ihre geladene php.ini-Datei finden, wenn Sie einfach phpinfo(); in eine leere PHP-Datei. es ist die 7. Reihe unten und hat angerufen Loaded Configuration File

    – Frankenminze

    24. Juli 2016 um 4:56 Uhr

  • Das funktioniert bei mir nicht. Tatsächlich kann ich anrufen ini_get('display_errors') und es gibt eine leere Zeichenfolge zurück (was bedeutet, dass es ausgeschaltet ist). Und ja, ich habe überprüft, ob es die einzige Zeile in der Konfigurationsdatei ist. Die Einstellung wird irgendwie überschrieben und ich kann nicht herausfinden warum und es macht mich verrückt. Ja, ich habe alles durchsucht /etc/php.d/ und es ist auch keine dieser Dateien. Ja, den Webserver habe ich auch neu gestartet. Nein, da steht nichts drin .htaccess Datei. Ich verwende PHP 7.4.6.

    – cazort

    3. August 2021 um 18:07 Uhr


1647105251 376 Wie bekomme ich PHP Fehler angezeigt
andre

Um alle Fehler anzuzeigen, müssen Sie:

1. Fügen Sie diese Zeilen in das PHP-Skript ein, das Sie vom Browser aufrufen (normalerweise index.php):

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

2.(a) Stellen Sie sicher, dass dieses Skript keine Syntaxfehler enthält

-oder-

2.(b) Satz display_errors = On in deiner php.ini

Andernfalls kann es nicht einmal diese 2 Zeilen ausführen!

Sie können in Ihrem Skript nach Syntaxfehlern suchen, indem Sie Folgendes ausführen (in der Befehlszeile):

php -l index.php

Wenn du enthalten das Skript von einem anderen PHP-Skript dann es Wille Anzeige von Syntaxfehlern in der inbegriffen Skript. Zum Beispiel:

index.php

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

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser

1647105251 636 Wie bekomme ich PHP Fehler angezeigt
Kalhua

Bei einigen Webhosting-Anbietern können Sie PHP-Parameter in der ändern .htaccess Datei.

Sie können die folgende Zeile hinzufügen:

php_value display_errors 1

Ich hatte das gleiche Problem wie Sie und diese Lösung hat es behoben.

  • Und wenn Sie sich in einer Nginx-Umgebung befinden, fügen Sie den php-Wert zu Ihrer Site-Konfiguration (sites-available) unter der Direktive location ~\.php hinzu. fastcgi_param PHP_VALUE ” error_reporting=E_ALL;\n display_errors=1;”;

    – Lázaros Kosmidis

    9. Oktober 2018 um 7:25 Uhr

Möglicherweise stellen Sie fest, dass alle Einstellungen für „Fehlerberichte“ oder „Fehler anzeigen“ in PHP 7 nicht zu funktionieren scheinen. Das liegt daran, dass sich die Fehlerbehandlung geändert hat. Versuchen Sie stattdessen Folgendes:

try{
     // Your code
} 
catch(Error $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

Oder um Ausnahmen und Fehler auf einmal abzufangen (dies ist nicht abwärtskompatibel mit PHP 5):

try{
     // Your code
} 
catch(Throwable $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

  • Und wenn Sie sich in einer Nginx-Umgebung befinden, fügen Sie den php-Wert zu Ihrer Site-Konfiguration (sites-available) unter der Direktive location ~\.php hinzu. fastcgi_param PHP_VALUE ” error_reporting=E_ALL;\n display_errors=1;”;

    – Lázaros Kosmidis

    9. Oktober 2018 um 7:25 Uhr

1647105251 983 Wie bekomme ich PHP Fehler angezeigt
Peter Mortensen

Das wird funktionieren:

<?php
     error_reporting(E_ALL);
     ini_set('display_errors', 1);    
?>

  • Oktober 2020: Das hat bei mir funktioniert. So einfach. Kein Herumspielen mit .htaccess oder php.ini. Wenn Sie fertig sind, kommentieren Sie es einfach aus oder entfernen Sie es. PHP7.4

    – Rob Moll

    23. Oktober 2020 um 14:18 Uhr


994510cookie-checkWie bekomme ich PHP-Fehler angezeigt?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy