recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir des messages d'erreur utiles en PHP

<p>Plusieurs fois, j'essaierai d'exécuter un script PHP et j'obtiendrai simplement un écran vide. Aucun message d'erreur, juste un écran vide. La cause peut être une simple erreur de syntaxe (parenthèses incorrectes, point-virgule manquant), un échec d'appel de fonction ou autre chose. </p> <p>Il est difficile de comprendre ce qui ne va pas. J'ai fini par commenter le code, en ajoutant des instructions "echo" ici et là, etc. pour essayer de réduire la portée du problème. Mais il doit y avoir une meilleure solution, non ? </p> <p>Existe-t-il un moyen pour que PHP génère un message d'erreur utile comme le fait Java ? </p>
P粉590929392P粉590929392460 Il y a quelques jours567

répondre à tous(2)je répondrai

  • P粉608647033

    P粉6086470332023-08-21 13:56:06

    Le code suivant active toutes les erreurs :

    ini_set('display_startup_errors', 1);
    ini_set('display_errors', 1);
    error_reporting(-1);

    Vous pouvez également vous référer au lien suivant :

    répondre
    0
  • P粉817354783

    P粉8173547832023-08-21 00:11:04

    Afficher les erreurs est désactivé par défaut car vous ne voulez pas que les « clients » voient les messages d'erreur.

    Veuillez consulter cette page dans la documentation PHP pour obtenir des informations sur deux directives : error_reportingdisplay_errors。您可能想更改的是display_errors.

    Vous avez donc 3 options :

    (1) Vous pouvez vérifier le fichier journal des erreurs car il contiendra toutes les erreurs (sauf si la journalisation est désactivée). Pour activer la journalisation des erreurs, assurez-vous que log_errors配置指令设置为On. Les journaux sont également utiles lorsque l'erreur n'est pas causée par PHP mais par le serveur Web.

    (2) Vous pouvez ajouter les 2 lignes de code suivantes pour vous aider à déboguer les erreurs non syntaxiques qui se produisent dans le même fichier :

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');

    Notez que sur un serveur de production, ce dernier doit être défini sur Off (mais uniquement ce dernier, car vous devez toujours connaître à partir des fichiers journaux toutes les erreurs survenues).

    Cependant, pour les erreurs de syntaxe qui se produisent dans le même fichier, les commandes ci-dessus ne fonctionneront pas et vous devez les activer dans php.ini. Si vous ne parvenez pas à modifier le fichier php.ini, vous pouvez également essayer d'ajouter les lignes suivantes à votre fichier .htaccess, bien que cela soit rarement pris en charge actuellement :

    php_flag  display_errors        on
    php_value error_reporting       -1

    (3) Une autre option consiste à utiliser un éditeur qui vérifie les erreurs au fur et à mesure que vous tapez, tel que PhpEd, VSCode ou PHPStorm. Ils sont tous livrés avec des débogueurs qui fournissent des informations plus détaillées. (Le débogueur PhpEd est très similaire à xdebug et intégré directement dans l'éditeur, vous pouvez donc tout faire avec un seul programme.)

    répondre
    0
  • Annulerrépondre