Notice: Constant DIR_FS_CATALOG already defined
Je l' ai déjà fait remarquer sur display_errors
dans php.ini
, mais ne fonctionne pas.
Comment faire en sorte que PHP ne renvoie pas de telles choses aux navigateurs?
METTRE À JOUR
Je mets display_errors = Off
là mais ça rapporte toujours de tels avis,
Est-ce un problème avec PHP 5.3?
Signaler également de nombreuses piles d'appels .
php
error-handling
constants
user198729
la source
la source
grep display_errors /path/to/php.ini
pour voir si votre ligne est remplacée quelque part dans le fichier. C'est ce qui m'arrivait.ini_set('display_errors',0)
dans votre fichier php. Lorsque vos paramètres ini ne fonctionnent pas, vous devez vérifier siphpinfo()
affiche la valeur souhaitée. Sinon, vous avez soit changé le mauvais fichier ini, soit quelque chose écrase vos valeurs de php.iniRéponses:
Vous pouvez définir
display_errors
à0
ou utiliser laerror_reporting()
fonction.Cependant, les avis sont ennuyeux (je peux partie sympathiser ) mais ils servent un but. Vous ne devriez pas définir une constante deux fois, la deuxième fois ne fonctionnera pas et la constante restera inchangée!
la source
display_errors
ne fonctionne pas comme prévu.phpinfo()
de voir si le paramètre s'applique réellement. Pardonnez-moi, mais je doute fortement que vous ayez trouvé un bogue dans PHP 5.3 - je ne le croirai que quand je le verrai :)local value
estmaster value
ini_set
directives ou dephp_ini_flag
paramètres dans des.htaccess
fichiers.Depuis la documentation PHP ( error_reporting ):
Autres options intéressantes pour cette fonction:
la source
Pour la ligne de commande php, définissez
dans
/etc/php5/cli/php.ini
l'
php
exécution de la commande omet ensuite les notifications.la source
source http://php.net/manual/en/function.error-reporting.php
la source
Utilisé cette ligne dans votre code
Je pense que sa main vous est pleine.
la source
Tu recherches:
la source
/usr/bin/php -d error_reporting="E_ERROR | E_WARNING | E_PARSE" -f /path/to/file.php
pour mon crontabJe préfère ne pas définir l'
error_reporting
intérieur de mon code. Mais dans un cas, un produit hérité, il y a tellement d'avis qu'ils doivent être cachés.J'ai donc utilisé l'extrait suivant pour définir la valeur configurée côté serveur pour
error_reporting
mais soustraire leE_NOTICE
s.Le paramètre de rapport d'erreurs peut maintenant être configuré davantage dans
php.ini
ou.htaccess
. Seuls les avis seront toujours désactivés.la source
Vous pouvez définir
ini_set('display_errors',0);
dans votre script ou définir les erreurs avec lesquelles vous souhaitez affichererror_reporting()
.la source
ini_set
méthode mentionnée ici, laerror_reporting(0)
méthode mentionnée ailleurs n'a eu aucun effet.en ne provoquant pas les erreurs:
Si vous devez vraiment le faire, remplacez le rapport d'erreur en utilisant error_reporting () en E_ALL ^ E_NOTICE.
la source
Pour le code PHP:
Pour la
php.ini
configuration:la source
J'ai découvert cette astuce récemment. Frappez un @ au début d'une ligne qui peut produire un avertissement / une erreur.
Comme par magie, ils disparaissent.
la source
Utilisez phpinfo () et recherchez pour
Configuration File (php.ini) Path
voir quel chemin de fichier de configuration pour php est utilisé. PHP peut avoir plusieurs fichiers de configuration en fonction de l'environnement dans lequel il s'exécute. Habituellement, pour la console, c'est:/etc/php5/cli/php.ini
et pour php géré par apache c'est:
/etc/php5/apache2/php.ini
Et puis définissez
error_reporting
la manière dont vous en avez besoin:http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini- fichier
la source
Comme certains l'ont mentionné et si vous êtes l'auteur du code, vous devez corriger toutes ces erreurs, notifications, etc. car cela vous posera plus de problèmes à long terme que de ne pas les réparer (surtout lorsque vous mettez à niveau votre système d'exploitation). Pour votre serveur, vous devriez avoir des erreurs affichées uniquement dans vos journaux, pas dans l'écran du client.
Donc, pour éviter les erreurs dans votre navigateur, vous utilisez le
display_errors
drapeau comme vous l'avez déjà trouvé:Maintenant, le vrai problème est lorsque vous exécutez du code de quelqu'un d'autre. Dans ce cas, la modification du code est susceptible d'être écrasée chaque fois que vous mettez à niveau ce code. Cela rend la maintenance de ce code fastidieuse.
Dans mon cas, j'utilise PHP
crontab
pour que lewp-cron.php
script s'exécute de temps en temps. Je recevais des erreurs dans mes e-mails, ce qui devient fastidieux lorsque vous recevez un e-mail toutes les 10 minutes! Dans ce cas, cependant, le système Wordpress a un fichier de configuration comprenant unWP_DEBUG
et ils appellent laerror_reporting()
fonction donc essayer de changer laerror_reporting
variable sur la ligne de commande ne fonctionnera pas. Au lieu de cela, vous devez modifier lewp-config.php
fichier dans le dossier racine et vous assurer que leWP_DEBUG
est défini surfalse
. Sinon, vous recevrez tous ces avertissements et notifications tout le temps.la source
Vous pouvez vérifier si la constante est déjà définie en utilisant:
la source
Je pense que commenter display_errors dans php.ini ne fonctionnera pas car la valeur par défaut est On. Vous devez le régler sur «Off» à la place.
N'oubliez pas de redémarrer Apache pour appliquer les modifications de configuration.
Notez également que même si vous pouvez définir display_errors lors de l'exécution, le modifier ici n'affecte pas les erreurs FATAL.
Comme indiqué par d'autres, idéalement pendant le développement, vous devriez exécuter avec error_reporting au plus haut niveau possible et display_errors activé. Bien que gênants au début, ces erreurs, avertissements, avis et conseils de codage stricts s'additionnent et vous permettent de devenir un meilleur codeur.
la source
Constantes doubles définies
Pour corriger l'erreur spécifique ici, vous pouvez vérifier si une constante est déjà définie avant de la définir:
Je commencerais personnellement par une recherche dans la base de code pour la constante
DIR_FS_CATALOG
, puis remplacerais la double définition par celle-ci.Masquer les avis PHP en ligne, au cas par cas
PHP fournit l'
@
opérateur de contrôle d'erreur, que vous pouvez utiliser pour ignorer des fonctions spécifiques qui provoquent des avis ou des avertissements.En utilisant cela, vous pouvez ignorer / désactiver les avis et les avertissements au cas par cas dans votre code, ce qui peut être utile dans les situations où une erreur ou un avis est intentionnel, planifié ou tout simplement ennuyeux et impossible à résoudre à la source . Placez un
@
avant la fonction ou la variable qui provoque une notification et elle sera ignorée.Voici un exemple:
Vous trouverez plus d'informations à ce sujet dans la documentation des opérateurs de contrôle d'erreur de PHP .
la source