Frage Wie bekomme ich PHP-Fehler angezeigt?


Ich habe meine überprüft PHP ini Datei- und Anzeigefehler eingestellt ist und auch Fehlerberichterstattung ist E_ALL. Ich habe meinen Apache-Webserver neu gestartet.

Ich habe diese Zeilen sogar an die Spitze meines Skripts gesetzt, und es werden nicht einmal einfache Syntaxfehler gefunden. Zum Beispiel deklariere ich Variablen mit a "$" und ich schließe keine Aussagen";". Aber alle meine Skripte zeigen eine leere Seite zu diesen Fehlern, aber ich möchte die Fehler in meiner Browserausgabe.

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

Was bleibt zu tun?


1295
2018-06-27 19:09


Ursprung


Antworten:


Das funktioniert immer für mich:

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

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

display_errors = on

2520
2018-01-29 11:25



Sie können keine Parse-Fehler abfangen, wenn die Fehlerausgabe zur Laufzeit aktiviert wird, da die Datei vor der eigentlichen Ausführung der Datei analysiert wird (und da sie dabei einen Fehler feststellt, wird nichts ausgeführt). Sie müssen die tatsächliche Serverkonfiguration ändern, damit display_errors aktiviert ist und die entsprechende error_reporting-Ebene verwendet wird. Wenn Sie keinen Zugriff auf die php.ini haben, können Sie abhängig vom Server möglicherweise .htaccess oder ähnliches verwenden.

Diese Frage kann zusätzliche Informationen liefern.


133
2018-06-27 19:14



In deinem php.ini:

display_errors = on

Dann starte deinen Webserver neu.


120
2018-01-08 09:27



Um alle Fehler anzuzeigen, müssen Sie:

1. Lassen Sie diese Zeilen im PHP-Skript, das Sie aufrufen, vom Browser aus (normalerweise index.php):

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

2. (a) Stellen Sie sicher, dass dieses Skript keine Syntaxfehler aufweist

-oder-

2. (b) Setzen display_errors = On in deinem php.ini

Sonst kann es nicht einmal diese 2 Zeilen laufen!

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

php -l index.php

Wenn du einschließen das Skript von einem anderen PHP-Skript dann werden Anzeige von Syntaxfehlern in der inbegriffen Skript. Beispielsweise:

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

78
2018-01-29 09:52



Einige Webhosting-Anbieter ermöglichen es Ihnen, PHP-Parameter in der .htaccess Datei.

Sie können folgende Zeile hinzufügen:

php_value display_errors 1

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


39
2018-05-18 15:01



Sie könnten feststellen, dass alle Einstellungen für "Fehlerberichte" oder "Fehler anzeigen" in PHP 7 scheinbar nicht funktionieren. Dies liegt daran, dass sich die Fehlerbehandlung geändert hat. Versuchen Sie es stattdessen:

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 zu erfassen (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'];
}

29
2018-03-28 19:26



Das wird funktionieren:

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

26
2018-05-05 13:23