Aller au contenu

désactiver E_DEPRECATED dans php.ini (WAMP)


captain_torche

Sujets conseillés

Je suis en train de débugger un vieux site, qui génère pas mal d'erreurs de type E_DEPRECATED sur mon installation locale (J'utilise Wampserver).

Je voudrais désactiver ces erreurs mais laisser les autres affichées, mais mes tentatives n'ont pour l'instant pas abouti.

J'ai dans mon fichier index.php, cette ligne :

error_reporting (E_ALL & ~E_DEPRECATED);

Qui est censée, si je ne m'abuse, m'afficher toutes les erreurs SAUF les erreurs de type E_DEPRECATED, mais ça ne semble pas fonctionner.

Y-a-t'il quelque chose que j'aurais loupé ?

Pour info, Mon installation de Wampserver est comme suit :

- Apache 2.0.63

- PHP 5.3.5

Lien vers le commentaire
Partager sur d’autres sites

error_reporting(E_ALL ^ E_DEPRECATED);

error_reporting(E_ALL & ~E_NOTICE)

Envoi toutes les erreurs sauf sauf celles de type E_DEPRECATED(la seconde exclue E_USER_DEPRECATED)

Lien vers le commentaire
Partager sur d’autres sites

Etrange, es-tu certain que la fonction error_reporting est appelée ? le mieux, modifie directement ça dans php.ini

Si tu as défini un gestionnaire d'erreur avec set_error_handler(), cette fonction est sans effet, cela peut être le cas si tu utilises un framework qui ont en général leur propre gestionnaire d'erreur (je dis ça de mémoire pour le truc du sans effet).

au pire, quel est le résultat de ça ?


$old = error_reporting(E_ALL & ~E_NOTICE)
var_dump($old);
var_dump(E_ALL & ~E_NOTICE);
var_dump($old==(E_ALL & ~E_NOTICE));

Sinon, si il n'y en a pas trop, change les eregi_replace dépréciés par des preg_replace :)

Lien vers le commentaire
Partager sur d’autres sites

Désactiver le error_reporting dans le PHP pour le mettre dans le php.ini ne change rien.

Ton code me donne ceci :

int 30711

int 30711

boolean true

Et sinon, il semble qu'il y ait BEAUCOUP TROP d'eregi pour que je les remplace (Une très vieille install de Typo3 ...)

Lien vers le commentaire
Partager sur d’autres sites

Euh, t'as un truc bizarre là, E_ALL & ~E_NOTICE, ca devrait être 6135, pas 30711 ^^

Essaie

error_reporting(6135); 

(c'est déconseillé en prod de pas utiliser les constantes)

Si ça marche pas :

php_value error_reporting 6135

dans ton htaccess, afin de ne pas y passer trop de temps :)

Si ca marche toujours pas, typo3 a surement un gestionnaire d'erreurs (si ce que je pense est vrai), alors display_errors = off (comme en prod )

Lien vers le commentaire
Partager sur d’autres sites

En fait E_ALL ^ E_DEPRECATED devrait fonctionner.

<?php
$old = error_reporting( E_ALL ^ E_DEPRECATED);
var_dump($old);
var_dump( E_ALL ^ E_DEPRECATED);
print eregi_replace('a', 'b', 'azertazareztaez');
?>

Devrait de renvoyer int(30719) int(22527) bzertbzbreztbez (la première valeur dépend de ton php.ini)

Essaie donc error_reporting( E_ALL ^ 8192 ); si ça ne fonctionne pas (vois la valeur de old)

En fait, il doit y avoir un autre appel à error_reporting qq part dans typo3 qui surcharge le tiens (si tu n'as pas désactivé la fonction dans php.ini).

Lien vers le commentaire
Partager sur d’autres sites

j'ai constamment

int 30711

int 22527

bzertbzbreztbez

Quoi que je change dans le php.ini.

C'est très bien si tu as ça, t'as certainement E_ALL & ~E_NOTICE dans php.ini, par contre si tu le change dans le ini et que ça bouge pas à l'affichage, soit tu ne charges pas le bon php.ini, soit tu ne relance pas apache :)

Et oui, je crois qu'il y a un autre error_reporting exécuté ultérieurement dans ton appli. (fait un print error_reporting(); en bas de ta page pour t'en convaincre, t'auras certainement pas 22527 qui n'afficherait pas les E_DEPRECATED).

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...