Maison  >  Article  >  développement back-end  >  php définit le niveau d'erreur

php définit le niveau d'erreur

王林
王林original
2019-09-26 17:40:155940parcourir

php définit le niveau d'erreur

Paramètre du niveau d'erreur php

Dans php.ini, vous pouvez définir le niveau d'alarme du serveur pour les erreurs. Par défaut, PHP signalera toutes les erreurs à l'exception des notifications. Le niveau de rapport d'erreurs est défini via certaines constantes prédéfinies,

Syntaxe :

int error_reporting ( [int level] )

Si le niveau de paramètre n'est pas spécifié, le niveau de rapport d'erreurs actuel sera rentré. Les éléments suivants sont des valeurs possibles de niveau :

php définit le niveau derreur

Dans le fichier php.ini, le rapport par défaut contient toutes les erreurs sauf les notifications, comme suit Paramètre de déclaration :

error_reporting = E_ALL & ~ (E_NOTICE)

Dans l'expression ci-dessus, le symbole "&" représente la juxtaposition de plusieurs conditions, et "~" représente la négation, ce qui signifie NON. Si vous souhaitez ignorer le message d'avertissement, vous pouvez définir l'instruction suivante :

error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)

Dans le fichier php.ini, les paramètres liés à l'erreur sont les suivants :

(1)error_reporting, définir le niveau d'erreur

(2)display_errors, afficher ou non les rapports d'erreur, définir sur ON pour ouvrir, définir sur OFF pour fermer toutes les invites d'erreur

(3)log_errors , le paramètre par défaut est OFF, s'il faut enregistrer les journaux d'erreurs ;

(4) track_errors, le paramètre par défaut est OFF, cette option peut aider à résoudre les erreurs dans le code, plutôt que de laisser PHP fournir son fonctions par défaut.

Rapport d'erreurs pour PHP
Il existe de nombreux paramètres de configuration dans le fichier php.ini. Vous auriez dû configurer votre fichier php.ini et le placer dans le répertoire approprié, comme indiqué dans la documentation d'installation de PHP et Apache2 sous Linux. Il existe deux variables de configuration dont vous devez être conscient lors du débogage d'applications PHP. Voici les deux variables et leurs valeurs par défaut :

display_errors = Off
error_reporting = E_ALL

Les valeurs par défaut actuelles de ces deux variables peuvent être trouvées en les recherchant dans le fichier php.ini. Le but de la variable display_errors est évident : elle indique à PHP s'il doit afficher les erreurs. La valeur par défaut est Désactivé. Cependant, pour faciliter le processus de développement, définissez cette valeur sur On :

display_errors = On

La valeur par défaut de la variable error_reporting est E_ALL. Ce paramètre affichera tout, des mauvaises pratiques de codage aux astuces inoffensives en passant par les erreurs. E_ALL est un peu trop granulaire à des fins de développement, car il affiche également des astuces à l'écran pour de petites choses (telles que des variables non initialisées), ce qui gâche la sortie du navigateur. Je veux seulement voir les erreurs et les mauvaises pratiques de codage, mais pas les astuces inoffensives. Alors, remplacez la valeur par défaut de error_reporting par la valeur suivante :

error_reporting = E_ALL & ~E_NOTICE

Redémarrez Apache et vous êtes prêt. Ensuite, vous apprendrez comment faire la même chose sur Apache.

Rapport d'erreurs sur le serveur

Selon ce que fait Apache, l'activation du rapport d'erreurs dans PHP peut ne pas fonctionner car il peut y avoir plusieurs versions de PHP. Parfois, il est difficile de savoir quelle version de PHP Apache utilise car Apache ne peut consulter qu'un seul fichier php.ini. Ne pas savoir quel fichier php.ini Apache utilise pour se configurer est un problème de sécurité. Cependant, il existe un moyen de configurer les variables PHP dans Apache afin que le niveau d'erreur correct soit défini. C'est également une bonne idée de savoir comment définir ces variables de configuration côté serveur pour remplacer ou préempter le fichier php.ini, offrant ainsi un niveau de sécurité plus élevé.

Lors de la configuration d'Apache, vous devriez déjà avoir été exposé à la configuration de base dans le fichier http.conf dans /conf/httpd.conf. Pour faire ce qui est déjà fait dans le fichier php.ini, ajoutez les lignes suivantes à httpd.conf, en écrasant tous les fichiers php.ini :

php_flag   display_errors         on
php_value error_reporting       2039

Cela remplacera le fichier php.ini pour display_errors déjà Le drapeau à set et la valeur de error_reporting. La valeur 2039 représente E_ALL & ~E_NOTICE. Si vous préférez utiliser E_ALL, définissez la valeur sur 2047. Encore une fois, vous devez toujours redémarrer Apache.

Ensuite, testez le rapport d'erreurs sur le serveur.

Concernant la fonction error_reporting(), elle peut bloquer certains messages d'erreur, mais les erreurs causées par le noyau PHP ne peuvent pas être bloquées, car les erreurs causées par le noyau PHP provoqueront directement PHP Le fichier la compilation a échoué car le format d'écriture ne suivait pas les règles d'encodage de PHP et provoquait des erreurs qui ne pouvaient pas être bloquées.

Les plus courants sont les suivants :

// 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
// This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误
error_reporting(E_ALL);
// Same as error_reporting(E_ALL);同上
ini_set(’error_reporting’, E_ALL);

Tutoriel recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn