IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Eviter les erreur PHP Notice dans le error_log ?


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut Eviter les erreur PHP Notice dans le error_log ?
    Bjr.
    Comment éviter d'enregistrer les erreurs PHP notice dans le fichiers error_log de Apache ?
    Merci.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    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.

  4. #4
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    J'ai "E_ALL & ^E_NOTICE" dans le error_reporting du phpinfo.
    Est ce que c'est bon ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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.

  6. #6
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    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 ?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par thanaos Voir le message
    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 ?
    bah c'est pas bon
    c'est sois E_ALL & ~E_NOTICE, sois E_ALL ^ E_NOTICE

    ton phpinfo devrais te retourner un nombre et pas un chaine

    change dans ton php.ini

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par thanaos Voir le message
    Tu en penses quoi ?
    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) :
    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
    En PHP :
    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
    Dans httpd.conf ou .htaccess (avec PHP en module) :
    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

    Citation Envoyé par thanaos Voir le message
    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 ?
    Oui.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2013, 09h57
  2. Erreur php session() dans error.log serveur
    Par JoN28fr dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2006, 21h34
  3. Eviter les erreurs lors de l'utilisation des compo Tsocket
    Par Coussati dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/02/2006, 19h14
  4. [MySQL] Eviter les doublons à l'insertion dans une base
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 26/01/2006, 15h26
  5. récupérer les erreurs php dans des exceptions
    Par jeanvincent dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo