2010-10-05 8 views
6

Ich habe einige Code, der mit Ioncube verschlüsselt ist und es ist auch für < PHP 5.3 geschrieben. Es gibt eine Menge veralteten Code, der immer noch funktioniert, aber es gibt Fehlermeldungen auf der gesamten Website.Erzwingen Error_reporting-Modus in PHP 5.3

Gibt es eine Möglichkeit, extern error_reporting zu E_ALL^​​E_DEPRECATED oder ähnlichem zu erzwingen? Ich bin mir sicher, dass sie im Code aus irgendeinem Grund E_ALL fest codieren.

Antwort

1

Auf PHP 5.2 gerollt und vermieden das Problem.

1

Deaktivieren Sie display_errors und loggen Sie sie stattdessen in eine Datei ein. Das ist Standardverfahren für jede Produktionswebsite.

In einer Apache-Konfigurationsdatei sollte php_admin_value error_reporting X es unmöglich machen, durch Benutzercode überschrieben zu werden, wobei X der von Ihnen gewünschte Ganzzahlwert ist.

Auch set_error_handler() kann von Nutzen sein, wenn Sie einige Laufzeitprüfungen durchführen möchten.

+0

Leider funktioniert das nicht für mich. Ich habe versucht, php_admin_value error_reporting 22519 (das ist der int-Wert von E_ALL & ~ E_NOTICE & ~ E_DEPRECATED) zu meinem httpd.conf im Abschnitt virtualhost hinzufügen. Ich kann es aber arbeiten sehen. Wenn ich ein phpinfo() starte, erscheint error_reporting, wie ich es im lokalen Wert angegeben habe. Es scheint jedoch, dass die error_reporting-Funktion php_admin_value überschreibt (wobei ini_set nicht möglich ist). – Noodles

+1

Können Sie sie mit 'set_error_handler()' abfangen? – Matthew

+0

Ich denke, die Anwendung, die ich verwende, setzt bereits einen Fehlerhandler. Am Ende habe ich wieder PHP 5.2 installiert, damit die Anwendung funktioniert. Danke für deine Hilfe trotzdem. – Noodles