Maison  >  Article  >  développement back-end  >  php signale l'erreur 500 lors de l'appel de sa propre méthode

php signale l'erreur 500 lors de l'appel de sa propre méthode

(*-*)浩
(*-*)浩original
2019-09-17 11:44:003170parcourir

Pour le code d'état d'erreur de requête http 500, l'explication habituelle est la suivante : cela signifie que le serveur a rencontré une erreur et n'a pas pu terminer la requête (c'est-à-dire une erreur interne du serveur), mais le problème spécifique doit être analysé en détail.

php signale l'erreur 500 lors de l'appel de sa propre méthode

Une erreur de syntaxe du programme PHP conduit à

Scénario 1 : Notre projet est mis en place avec une surveillance des alarmes (programmée chaque 10 minutes (Visitez un lien fixe sur le site). Il fut un temps où je recevais des emails signalant 500 erreurs deux ou trois fois par jour, mais lorsque j'y accédais à nouveau manuellement, l'accès était normal... (Apprentissage recommandé : Programmation PHP de l'entrée à la maîtrise )

Cela devrait être l'erreur la plus courante. Les erreurs grammaticales peuvent également réapparaître rapidement. Tant que le message d'erreur est exposé, le problème peut être résolu immédiatement.

S'il s'agit d'un environnement local ou de test, c'est généralement ainsi que nous le gérons. Il suffit de définir le message d'erreur de sortie dans l'entrée du programme :

//error_reporting设置应该报告的错误,下面表示除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);
//输出错误
ini_set('display_errors', 1);

Mais dans un environnement en ligne, car les utilisateurs. Si vous l'utilisez, il est impossible de nous permettre de commettre des erreurs d'impression aussi flagrantes, que devons-nous faire ? Vous pouvez définir la sortie d'erreur dans le fichier journal dans le fichier d'entrée du programme. Le code spécifique est le suivant :

error_reporting(E_ALL ^ E_NOTICE);
//禁止把错误输出到页面
ini_set('display_errors', 0);
//设置错误信息输出到文件
ini_set('log_errors', 1);

//指定错误日志文件名
$error_dir = '/logs/err/';
$error_file = $error_dir . date('Ymd').'.log';
//目录不存在就创建
if (!is_dir($error_dir)){
    mkdir($error_dir, 0777, true);
}
//文件不存在就创建之
if(!file_exists($error_file)){
    $fp = fopen($error_file, 'w+');
    if($fp){
        fclose($fp);
    }
}

//设置错误输出文件
ini_set("error_log", $error_file);

//程序正常执行逻辑......

Le problème dans le scénario 1 que nous venons de mentionner a été découvert plus tard lorsque nous l'avons affiché dans le journal dans le même cas. comme ci-dessus. C'était parce que mysql La connexion était anormalement déconnectée et le programme continuait à s'exécuter (c'était normal lors de la connexion à mysql, mais une erreur a été signalée lors de l'appel de la méthode de requête spécifique. Je me souviens que cela semblait être l'endroit où se trouvait la méthode mysqli_real_escape_string. () a été utilisé). Cela a entraîné une erreur fatale, qui a finalement été réparée avec succès.

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
Article précédent:Le rôle du cryptage phpArticle suivant:Le rôle du cryptage php