_Notice: Constant DIR_FS_CATALOG already defined
_
J'ai déjà commenté display_errors
dans _php.ini
_, mais ne fonctionne pas.
Comment faire PHP pour ne pas envoyer de telles choses aux navigateurs?
UPDATE
Je mets _display_errors = Off
_ mais il continue de signaler de tels avis,
Est-ce un problème avec PHP 5.3?
Signaler de nombreuses piles d'appels aussi ..
Vous pouvez régler display_errors
sur 0
ou utiliser la fonction error_reporting()
.
Cependant, les avis sont ennuyeux (je peux en partie sympathiser ) mais ils servent à quelque chose. Vous ne devriez pas définir une constante deux fois, la deuxième fois ne fonctionnera pas et la constante restera inchangée!
De la documentation PHP ( error_reporting ):
<?php
// Turn off all error reporting
error_reporting(0);
?>
Autres options intéressantes pour cette fonction:
<?php
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Pour la ligne de commande php, définissez
error_reporting = E_ALL & ~E_NOTICE
dans /etc/php5/cli/php.ini
la commande php
exécution exécute ensuite les avis.
<?php
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
source http://php.net/manual/en/function.error-reporting.php
Utilisé cette ligne dans votre code
error_reporting(E_ALL ^ E_NOTICE);
Je pense que son aide complète à vous.
Tu recherches:
php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"
Vous pouvez définir ini_set('display_errors',0);
dans votre script ou définir les erreurs que vous souhaitez afficher avec error_reporting()
.
en ne causant pas les erreurs:
defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');
Si vous devez vraiment le faire, modifiez le rapport d'erreur à l'aide de error_reporting () en E_ALL ^ E_NOTICE.
Pour le code PHP:
<?php
error_reporting(E_ALL & ~E_NOTICE);
Pour php.ini
config:
error_reporting = E_ALL & ~E_NOTICE
Je pense que commenter les display_errors dans php.ini ne fonctionnera pas car la valeur par défaut est On. Vous devez plutôt le régler sur "Off".
N'oubliez pas de redémarrer Apache pour appliquer les modifications de configuration.
Notez également que bien que vous puissiez définir display_errors lors de l'exécution, le modifier ici n'affecte pas les erreurs FATAL.
Comme d'autres l'ont noté, idéalement pendant le développement, vous devriez exécuter error_reporting au plus haut niveau possible et display_errors activé. Bien qu'ennuyeux au début, ces erreurs, avertissements, avis et conseils de codage stricts s’additionnent et vous permettent de devenir un meilleur codeur.
Utilisez phpinfo () et recherchez Configuration File (php.ini) Path
pour voir quel chemin de fichier de configuration php est utilisé. PHP peut avoir plusieurs fichiers de configuration en fonction de l'environnement sur lequel il est exécuté. 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 ensuite, configurez error_reporting
comme 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-file
J'ai trouvé cette astuce récemment. Frappez un @ au début d'une ligne pouvant générer un avertissement/une erreur.
Comme par magie, ils disparaissent.
Comme mentionné par certains et si vous êtes l'auteur du code, corrigez toutes ces erreurs, ces avis, etc. Pour votre serveur, des erreurs devraient apparaître dans vos journaux uniquement, pas sur l'écran du client.
Donc, pour éviter les erreurs dans votre navigateur, vous utilisez l'indicateur display_errors
comme vous l'avez déjà trouvé:
display_errors = Off
Maintenant, le vrai problème est lorsque vous exécutez le 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. Il est fastidieux de maintenir ce code.
Dans mon cas, j’utilise PHP avec crontab
pour que le script wp-cron.php
s’exécute de temps en temps. Je recevais des erreurs dans mes emails, ce qui devient fastidieux quand vous recevez un email toutes les 10 minutes! Dans ce cas, cependant, le système Wordpress a un fichier de configuration qui inclut un WP_DEBUG
et appelle la fonction error_reporting()
pour essayer de modifier la variable error_reporting
de la commande. la ligne ne fonctionnera pas. Au lieu de cela, vous devez éditer le fichier wp-config.php
dans le dossier racine et vous assurer que le WP_DEBUG
est défini sur false
. Sinon, vous recevrez tous ces avertissements et avis tout le temps.
Je préfère ne pas définir le error_reporting
dans mon code. Mais dans un cas, un produit existant, il y a tellement de notifications qu'il faut les cacher.
J'ai donc utilisé l'extrait suivant pour définir la valeur configurée côté serveur pour error_reporting
et soustraire le E_NOTICE
s.
error_reporting(error_reporting() & ~E_NOTICE);
Le paramètre de rapport d'erreur peut maintenant être configuré dans php.ini
ou .htaccess
. Seuls les avis seront toujours désactivés.
Vous pouvez vérifier si la constante est déjà définie en utilisant:
<?php
if (!defined('MYCONST'))
define('MYCONST', 'Weeha!');
?>