2000 Stimmen

Wie kann ich PHP-Fehler anzeigen lassen?

Ich habe meine PHP ini-Datei (php.ini) überprüft und display_errors ist eingestellt und auch die Fehlermeldung ist auf E_ALL gesetzt. Ich habe meinen Apache-Webserver neu gestartet.

Ich habe sogar diese Zeilen an den Anfang meines Skripts gesetzt, und es fängt nicht einmal einfache Syntaxfehler auf. Zum Beispiel, ich deklariere Variablen mit einem "$" und schließe Anweisungen nicht mit dem Zeichen ";" ab. Aber alle meine Skripts zeigen eine leere Seite bei diesen Fehlern, ich möchte jedoch tatsächlich die Fehlermeldungen in meiner Browserausgabe sehen.

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

Was bleibt noch zu tun?

10 Stimmen

Ich habe noch nicht genau herausgefunden, warum dies manchmal funktioniert und manchmal nicht, aber für alle, die Fehler in einem PHP-Skript schnell umschalten möchten (oder sie über einen $_REQUEST -Parameter aktivieren möchten), werden diese beiden Zeilen die meiste Zeit funktionieren.

0 Stimmen

Du kannst die Details des Fehlers sehen, indem du xdebug in der php.ini-Datei aktivierst.

1 Stimmen

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

4voto

Sie können dies tun, indem Sie die php.ini-Datei ändern und das Folgende hinzufügen

display_errors = on
display_startup_errors = on

ODER Sie können auch den folgenden Code verwenden, da dies bei mir immer funktioniert

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

3voto

Peter Haberkorn Punkte 239

Wenn Sie Xdebug installiert haben, können Sie jede Einstellung überschreiben, indem Sie Folgendes festlegen:

xdebug.force_display_errors = 1;
xdebug.force_error_reporting = -1;

force_display_errors

Typ: int, Standardwert: 0, Eingeführt in Xdebug >= 2.3 Wenn dieser Wert auf 1 gesetzt ist, werden Fehler immer angezeigt, unabhängig von der Einstellung von display_errors in PHP.

force_error_reporting

Typ: int, Standardwert: 0, Eingeführt in Xdebug >= 2.3 Diese Einstellung ist ein Bitmaskenwert wie error_reporting. Diese Bitmaske wird logisch mit der Bitmaske von error_reporting verknüpft, um festzulegen, welche Fehler angezeigt werden sollen. Diese Einstellung kann nur in der php.ini vorgenommen werden und ermöglicht es Ihnen, bestimmte Fehler zu erzwingen, unabhängig davon, was eine Anwendung mit ini_set() tut.

3voto

Sie möchten möglicherweise diesen Code verwenden:

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

3voto

jewelhuq Punkte 1146

Einfach eintippen:

error_reporting(-1);

2voto

gvlasov Punkte 16474

Wenn es sich um die Befehlszeile handelt, können Sie php mit -ddisplay_errors=1 ausführen, um die Einstellung in php.ini zu überschreiben:

php -ddisplay_errors=1 script.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X