Frage

Was sind einige Gründe, warum PHP-Fehler zwingen würde, zu zeigen, egal, was Sie sagen, es zu deaktivieren?

Ich habe versucht,

error_reporting(0);
ini_set('display_errors', 0); 

ohne Glück.

War es hilfreich?

Lösung

Beachten Sie die Einschränkung im Handbuch unter http://uk.php.net/error_reporting :

  
    

Die meisten E_STRICT Fehler werden bei der Kompilierung damit solche Fehler ausgewertet werden nicht in der Datei gemeldet, wo error_reporting verstärkt wird E_STRICT Fehler enthalten (und umgekehrt).

  

Wenn Ihr zugrunde liegende System so konfiguriert ist, E_STRICT Fehler zu melden, können diese ausgegeben werden, bevor Sie den Code selbst betrachtet wird. Vergessen Sie nicht, error_reporting / ini_set sind Runtime-Auswertungen, und alles, durchgeführt in einer „vor-run“ Phase nicht sehen, die Auswirkungen.


Basierend auf Ihrem Kommentar, dass Ihr Fehler ist ...

  

Parse-Fehler: Syntaxfehler, unerwarteter T_VARIABLE, erwartet '' oder ';' in /usr/home/REDACTED/public_html/dev.php on line 11

Dann wird das gleiche allgemeine Konzept gilt. Ihr Code wird nie ausgeführt, da es syntaktisch ungültig ist (Sie vergessen haben, ‚;‘). Daher wird Ihre Änderung der Fehlerberichterstattung nie aufgetreten.

Dies zu beheben, um eine Änderung der Systemebene Fehlerberichterstattung erfordert. Zum Beispiel auf Apache können Sie in der Lage zu platzieren ...

php_value error_reporting 0

in einer .htaccess-Datei, sie alle zu unterdrücken, aber das ist die Systemkonfiguration abhängig.

Pragmatisch, schreiben Sie nicht Dateien mit Syntaxfehler:)

Andere Tipps

Um Fehler zu vermeiden von dem Anzeigen können Sie

  • Schreiben in einer .htaccess: php_flag display_errors 0
  • Teilen Sie Ihren Code in separaten Modulen, wo die main (parent) PHP Datei nur setzt die error_logging und dann umfassen () das andere Dateien.

Verwenden Sie phpinfo die geladenen php.ini zu finden und bearbeiten zu verstecken Fehler. Sie überschreibt, was Sie in Ihrem Skript setzen.

Ist set_error_handler() überall in Ihrem Skript verwendet? Dies überschreibt error_reporting(0).

Verwenden log_errors für sie statt angezeigt werden protokolliert

Wenn die Einstellung in Apache angegeben wird mit php_admin_value es nicht in .htaccess oder in der Laufzeit verändert werden kann. Siehe: http://docs.php.net/configuration.changes

  

Pragmatisch, schreiben Sie nicht Dateien mit Syntaxfehler:)

Um sicherzustellen, gibt es keine Syntaxfehler in der Datei, führen Sie die folgenden Schritte aus:

php -l YOUR_FILE_HERE.php

Dies wird Ausgabe etwas wie folgt aus:

PHP Parse error:  syntax error, unexpected '}' in Connection.class.php on line 31

Fügen Sie einfach den Code unten in der index.php Datei:

ini_set('display_errors', False);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top