2010-10-05 21 views
6

J'ai du code crypté avec ioncube et il est aussi écrit pour < PHP 5.3. Il y a une tonne de code obsolète, qui fonctionnerait encore, mais il y a des messages d'erreur partout sur le site.Comment forcer le mode error_reporting en PHP 5.3

Existe-t-il un moyen de forcer externe error_reporting à E_ALL^​​E_DEPRECATED ou similaire? Je suis sûr que dans le code, ils sont codés en dur pour E_ALL pour une raison quelconque.

Répondre

1

Rétablie à PHP 5.2 et a évité le problème.

1

Désactivez display_errors et consignez-les dans un fichier à la place. C'est la procédure standard pour tout site Web de production.

Dans un fichier de configuration Apache, php_admin_value error_reporting X devrait rendre impossible le remplacement par le code utilisateur, où X est la valeur entière que vous voulez.

En outre, set_error_handler() peut être utile si vous souhaitez effectuer des vérifications d'exécution.

+0

Malheureusement, cela ne fonctionne pas pour moi. J'ai essayé d'ajouter php_admin_value error_reporting 22519 (qui est la valeur int de E_ALL & ~ E_NOTICE & ~ E_DEPRECATED) à mon httpd.conf sous la section virtualhost. Je peux le voir fonctionner quand même. Si j'exécute un phpinfo() alors error_reporting apparaît comme spécifié dans la valeur locale. Il semble cependant que la fonction error_reporting substitue php_admin_value (où ini_set ne peut pas). – Noodles

+1

Êtes-vous capable de les piéger avec 'set_error_handler()'? – Matthew

+0

Je pense que l'application que j'utilise déjà définit un gestionnaire d'erreur. J'ai fini par revenir à PHP 5.2 pour que l'application fonctionne. Merci pour votre aide de toute façon. – Noodles