Bjr.
Comment éviter d'enregistrer les erreurs PHP notice dans le fichiers error_log de Apache ?
Merci.
Bjr.
Comment éviter d'enregistrer les erreurs PHP notice dans le fichiers error_log de Apache ?
Merci.
En mettant error_reporting à valeur E_ALL & ~E_NOTICE.
Notes :
- Ces constantes ne sont pas valables hors PHP (côté Apache par exemple)
- Dans le cas d'une modification du php.ini, le serveur devra être redémarré si PHP fonctionne en tant que module
Le plus simple étant tout de même de corrigé les notices. C'est souvent des erreurs grossières du genre variable non initialisé ou offset de tableau innexistant.
Pour rappel , on développe généralement avec tous les messages d'erreur possible afin de pouvoir les corriger au fur et à mesure.
J'ai "E_ALL & ^E_NOTICE" dans le error_reporting du phpinfo.
Est ce que c'est bon ?
J'en doute : 1) ce n'est pas le bon opérateur (syntaxiquement faux : 2 opérateurs requérant 2 opérandes pour 2 valeurs), 2) vous devriez obtenir une valeur numérique (résultant de l'évaluation) et non une chaîne
PS : je rappelle qu'il n'y a pas évaluation des constantes/opérateurs en dehors de PHP (fichiers ini ou script). Il faut alors préciser directement une valeur numérique.
Le phpinfo classique me retourne exactement ceci
Directive - Local Value - Master Value
error_reporting - E_ALL & ^E_NOTICE - E_ALL & ^E_NOTICE
et le phpinfo du ZendCore 2.5
Directive - Local Value - Master Value
error_reporting - 6135 - E_ALL & ^E_NOTICE
Tu en penses quoi ?
Et si mes dévs modifient le error_reporting dans leurs scripts (en E_ALL par exemple) est ce que les erreurs NOTICE vont se coller dans le fichier error_log ?
Il ne faut pas de quotes autour de votre valeur si vous utilisez les constantes, sinon il n'y a pas non plus évaluation et votre valeur est prise telle qu'elle, pour une chaîne.
Dans php.ini ou les .user.ini (PHP >= 5.3 et en CGI) :
En PHP :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 error_reporting = E_ALL & ~E_NOTICE ; juste error_reporting = "E_ALL & ~E_NOTICE" ; faux, pas d'évaluation avec une chaîne
Dans httpd.conf ou .htaccess (avec PHP en module) :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ini_set('error_reporting', E_ALL & ~E_NOTICE); # juste ini_set('error_reporting', 'E_ALL & ~E_NOTICE'); # faux, pas d'évaluation avec une chaîne error_reporting(E_ALL & ~E_NOTICE); # juste error_reporting('E_ALL & ~E_NOTICE'); # faux, pas d'évaluation avec une chaîne
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 php_value error_reporting "E_ALL & ~E_NOTICE" # faux, pas d'évaluation par les SAPI, c'est PHP qui l'implémente via son parseur de fichiers .ini (les quotes sont ici obligatoires, les espaces marquant, sinon, le passage à un nouveau paramètre) php_value error_reporting 30711 # juste
Oui.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager