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.
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] )
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 报告不赞成的用法和不推荐的行为
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)
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)
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 核心错误警告。
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
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_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
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
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
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);
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!