J'ai besoin de configurer mon script PHP en haut pour désactiver le rapport d'erreur pour des normes strictes.
Quelqu'un peut-il m'aider ?
J'ai besoin de configurer mon script PHP en haut pour désactiver le rapport d'erreur pour des normes strictes.
Quelqu'un peut-il m'aider ?
Voulez-vous désactiver les rapports d'erreur ou simplement empêcher l'utilisateur de les voir ? C'est généralement une bonne idée de consigner les erreurs, même sur un site de production.
# in your PHP code:
ini_set('display_errors', '0'); # don't show any errors...
error_reporting(E_ALL | E_STRICT); # ...but do log them
Ils seront enregistrés dans votre journal système standard, ou utilisez la fonction error_log
pour spécifier exactement où vous voulez que les erreurs aillent.
Afin d'énoncer explicitement l'évidence : bien sûr, vous pouvez également définir ces paramètres dans votre php.ini
par exemple, si vous ne pouvez pas modifier le code PHP.
Cependant, la journalisation des erreurs strictes en production est également une mauvaise pratique. En effet, vous allez remplir vos journaux avec des avis qui n'ont probablement pas d'importance, provoquant l'un ou les deux problèmes suivants : serverAdmin va rater/ignorer les erreurs et le répertoire des journaux va consommer tout l'espace du serveur à un moment donné.
Cela ne fonctionne pas pour moi - j'ai dû utiliser E_ALL & ~E_STRICT du commentaire de Fake Code Monkey Rashid de la réponse ci-dessous
+1 : Je crois que le ^
n'est bon que pour omettre un seul type d'erreur. Si vous voulez désactiver d'autres types d'erreurs, vous devez utiliser la fonction E_ALL & ~E_DEPRECATED & ~E_STRICT
format. Ou peut-être que le (E_ALL & ~(E_DEPRECATED | E_STRICT))
format.
@FakeCodeMonkeyRashid Je me demande pourquoi ? probablement parce que l'ordre d'évaulation est alors important ?
Toutes les solutions ci-dessus sont correctes. Mais, lorsqu'il s'agit d'une application PHP normale, elles doivent être incluses dans chaque page qu'elle requiert. Une façon de résoudre ce problème est d'utiliser .htaccess
dans le dossier racine. Juste pour cacher les erreurs. [Mettez une des lignes suivantes dans le fichier]
php_flag display_errors off
Ou
php_value display_errors 0
Ensuite, pour définir le rapport d'erreur
php_value error_reporting 30719
Si vous vous demandez comment la valeur 30719
came, E_ALL (32767), E_STRICT (2048) sont en fait des constantes qui contiennent des valeurs numériques et ( 32767 - 2048 = 30719
)
Merci beaucoup. Cela a fonctionné (solution .htaccess) en PHP 5.4.7. Rien d'autre, même la modification du .ini, n'a fonctionné.
J'ai utilisé php_admin_value error_reporting
pour que cela fonctionne (dans la configuration du serveur virtuel).
La valeur par défaut de signalement des erreurs Le drapeau est E_ALL & ~E_NOTICE s'il n'est pas défini dans le php.ini. Mais dans certaines installations (particulièrement les installations visant les environnements de développement) a E_ALL | E_STRICT fixé comme valeur de ce drapeau (c'est le valeur recommandée au cours du développement ). Dans certains cas, notamment lorsque vous souhaitez exécuter des projets open source, qui ont été développés avant l'ère de PHP 5.3 et qui n'ont pas encore été mis à jour avec les meilleures pratiques définies par PHP 5.3, dans votre environnement de développement, vous obtiendrez probablement des messages comme ceux que vous obtenez. La meilleure façon de faire face à cette situation, est de mettre seulement E_ALL comme la valeur de Signalement des erreurs soit dans php.ini ou dans code (probablement dans un contrôleur frontal comme index.php dans web-Root comme suit :
if(defined('E_STRICT')){
error_reporting(E_ALL);
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
8 votes
@451F : Je pense que les mots clés ici sont "normes strictes". Je ne connais pas les versions précédentes, mais avec PHP 5.4.0, il est recommandé de définir le rapport d'erreur à
E_ALL & ~E_DEPRECATED & ~E_STRICT
pour la production. Notez qu'ils vous suggèrent de désactiver des normes strictes.0 votes
Trouvez également votre fichier php.ini et copiez-le dans /usr/local/php5/lib/.