2010-10-05 20 views
6

Tôi có một số mã được mã hóa bằng ioncube và nó cũng được viết cho < PHP 5.3. Có rất nhiều mã không dùng nữa, mã này vẫn hoạt động nhưng có thông báo lỗi trên toàn bộ trang web.Cách buộc chế độ error_reporting trong PHP 5.3

Có cách nào bên ngoài buộc error_reporting thành E_ALL^​​E_DEPRECATED hoặc tương tự không? Tôi chắc chắn trong mã họ đang hardcoding để E_ALL vì lý do nào.

Trả lời

1

Được quay trở lại PHP 5.2 và tránh sự cố.

1

Tắt display_errors và đăng nhập vào tệp thay thế. Đó là thủ tục tiêu chuẩn cho bất kỳ trang web sản xuất nào.

Trong tệp cấu hình Apache, php_admin_value error_reporting X nên không thể ghi đè mã người dùng, trong đó X là giá trị số nguyên bạn muốn.

Ngoài ra, set_error_handler() có thể được sử dụng nếu bạn muốn thực hiện một số kiểm tra thời gian chạy.

+0

Rất tiếc, điều này không hiệu quả đối với tôi. Tôi đã thử thêm php_admin_value error_reporting 22519 (đó là giá trị int của E_ALL & ~ E_NOTICE & ~ E_DEPRECATED) vào httpd.conf của tôi trong phần virtualhost. Tôi có thể thấy nó hoạt động. Nếu tôi chạy một phpinfo() thì error_reporting xuất hiện như tôi chỉ định trong giá trị cục bộ. Dường như chức năng error_reporting ghi đè lên php_admin_value (trong đó ini_set không thể). – Noodles

+1

Bạn có thể bẫy chúng bằng 'set_error_handler()' không? – Matthew

+0

Tôi nghĩ rằng ứng dụng tôi đang sử dụng đã đặt một trình xử lý lỗi. Tôi đã quay trở lại PHP 5.2 để ứng dụng sẽ hoạt động. Cảm ơn sự giúp đỡ của bạn anyway. – Noodles

Các vấn đề liên quan