Comment modifier le niveau d'erreur en php

青灯夜游
Libérer: 2023-03-10 09:58:02
original
2406 Les gens l'ont consulté

En PHP, vous pouvez utiliser la fonction error_reporting() pour modifier le niveau d'erreur. Cette fonction peut spécifier quelle erreur signaler. Le format de syntaxe est "error_reporting(level)" ; niveau du script actuel, et la valeur est un nombre et les noms de constantes sont acceptables.

Comment modifier le niveau d'erreur en php

L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP7.1, ordinateur DELL G3

Vous pouvez définir l'erreur du serveur en php Niveau d'alarme .ini. 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] )
Copier après la connexion

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

Comme indiqué dans le tableau suivant :

1        E_ERROR        报告运行时的致命错误
2        E_WARNING        报告运行的非致命错误

4        E_PARSE        报告解析错误
8        E_NOTICE        报告通告,注意,表示所做的事情可能是错误的.
16           E_CORE_ERROR        报告PHP引擎启动失败
32           E_CORE_WARNING    报告PHP引擎启动时非致命错误

64           E_COMPILE_ERROR    报告编译错误
128         E_COMPILE_WARNING    报告编译时出现的非致命错误

256         E_USER_ERROR        报告用户触发的错误
512         E_USER_WARNING    报告用户触发的警告

1024          E_USER_NOTICE        报告用户触发的通告
2047       E_ALL            报告所有的错误和警告
2048       E_STRICT        报告不赞成的用法和不推荐的行为
Copier après la connexion

Dans le fichier php.ini, le rapport par défaut contient toutes les erreurs, à l'exception des notifications, telles que définies par l'énoncé suivant :

error_reporting = E_ALL & ~ (E_NOTICE)
Copier après la connexion

Dans l'expression ci-dessus, le symbole "&" indique la juxtaposition de plusieurs conditions, et "~" indique la négation, ce qui signifie NON.

Si Si vous souhaitez ignorer le message d'avertissement, vous pouvez définir l'instruction suivante :

   error_reporting = E_ALL & ~(E_NOTICE) & ~(E_WARNING)
Copier après la connexion

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

(1) error_reporting, définir 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 le paramètre par défaut est OFF, que ce soit Enregistrer les journaux d'erreurs ;

(4) track_errors, défini sur OFF par défaut, cette option peut aider à résoudre les erreurs dans le code au lieu de laisser PHP fournir ses fonctions par défaut.

Collecté sur Internet :

E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。

E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。
E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。
E_PARSE 从语法中剖析错误。
E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
Copier après la connexion

Rapport d'erreur PHP

Il existe de nombreux paramètres de configuration dans le fichier php.ini. Vous devriez avoir déjà configuré votre fichier php.ini et l'avoir placé dans le répertoire approprié, tout comme lors de l'installation de PHP sous Linux. comme indiqué dans la documentation Apache 2. 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
Copier après la connexion

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
Copier après la connexion

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_TOUS C'est un peu trop granulaire pour le 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 juste voir des erreurs et de mauvaises pratiques de codage, mais pas Une allusion inoffensive. Alors, remplacez la valeur par défaut de error_reporting par la valeur suivante :

error_reporting = E_ALL & ~E_NOTICE
Copier après la connexion

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 dire

quelle version de PHP Apache utilise car Apache ne peut consulter qu'un seul fichier php.ini. Je ne sais pas lequel Apache utilise La configuration du fichier php.ini elle-même constitue 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.

De plus, il est bon 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 que vous avez 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
Copier après la connexion

Cela remplacera tout php.ini files.ini qui a été défini pour display_errors et la valeur de error_reporting. Valeur 2039 Représente E_ALL et ~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 masquer certains messages d'erreur, mais les erreurs causées par le noyau PHP ne peuvent pas être protégées, car les erreurs causées par le noyau PHP entraîneront directement l'échec de la compilation du fichier PHP, car l'écriture Les erreurs causées par le format non écrit conformément aux règles de codage PHP ne peuvent pas être bloquées.

Les erreurs courantes sont les suivantes :

 // 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);
Copier après la connexion

Apprentissage 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal