2010-10-05 15 views
6

Mam kod, który jest zaszyfrowany przez ioncube i jest również napisany dla < PHP 5.3. Jest mnóstwo przestarzałego kodu, który nadal działałby, ale w całej witrynie pojawiają się komunikaty o błędach.Jak wymusić tryb error_reporting w PHP 5.3

Czy istnieje sposób zewnętrznego wymuszania error_reporting na E_ALL^​​E_DEPRECATED lub podobnym? Jestem pewien, że w kodzie są one kodowane do E_ALL z jakiegoś powodu.

Odpowiedz

1

Powrócił do PHP 5.2 i uniknął problemu.

1

Wyłącza display_errors i rejestruje je zamiast tego w pliku. Jest to standardowa procedura dla każdej witryny produkcyjnej.

W pliku konfiguracyjnym Apache, php_admin_value error_reporting X powinno uniemożliwić nadpisanie przez kod użytkownika, gdzie X jest żądaną liczbą całkowitą.

Również, set_error_handler() może być przydatny, jeśli chcesz wykonać pewne kontrole środowiska wykonawczego.

+0

Niestety to nie działa dla mnie. Próbowałem dodać php_admin_value error_reporting 22519 (co jest wartością int E_ALL & ~ E_NOTICE & ~ E_DEPRECATED) do mojego httpd.conf w sekcji virtualhost. Widzę, że działa. Jeśli uruchomię phpinfo(), to zgłoszenie error show pojawia się, jak określam w lokalnej wartości. Wydaje się jednak, że funkcja error_reporting przesłania wartość php_admin_value (gdzie ini_set nie może). – Noodles

+1

Czy jesteś w stanie pułapkować je za pomocą 'set_error_handler()'? – Matthew

+0

Myślę, że aplikacja, której używam, ustawia program obsługi błędów. Zakończyłem powrót do PHP 5.2, aby aplikacja działała. Mimo wszystko, dziękuję za twoją pomoc. – Noodles

Powiązane problemy