2013-02-11 3 views
4

J'utilise CodeIgniter et j'ai ajouté les lignes suivantes dans mon index.php:PHP display_errors = 0 pas respectés

error_reporting(E_ALL^E_NOTICE); 
ini_set('display_errors', 0); 
ini_set('log_errors', 1); 
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] . '/php_errors.log'); 

Pour une raison quelconque, cependant, PHP affiche toujours les avertissements/erreurs de toute façon et ne pas créer un journal dans le répertoire accessible en écriture. Je sais que le code ci-dessus est en train d'être atteint, car si j'enlève la partie "^ E_NOTICES" et que je le soumet de nouveau, je verrai des tonnes d'avis. J'ai également lancé une instruction die() après le code ci-dessus pour vérifier qu'il était en train d'être touché. Enfin, j'ai guidé par codebase entière pour vérifier que "display_errors" n'est pas utilisé plus tard dans le code, écrasant ma valeur de 0.

Y at-il quelque chose d'autre que je pourrais manquer qui m'empêche d'arrêter l'affichage des erreurs?

+1

Vérifiez vos paramètres php.ini que vos paramètres soient 'PHP_INI_USER' ou' PHP_INI_ALL'. Sinon, vous ne pouvez pas les modifier depuis votre script. – migg

+0

La documentation indique que les deux arguments de 'ini_set' doivent être des chaînes, votre second argument est un entier. Je ne sais pas si cela compte, mais vous pouvez essayer de mettre des citations autour du 0. – kba

+0

@migg Je parie que vous êtes sur la bonne voie, mais je ne trouve rien de pareil dans mon php.ini. Savez-vous quel attribut spécifique c'est? – Anthony

Répondre