Question Comment puis-je obtenir des erreurs PHP à afficher?


J'ai vérifié mon PHP ini les erreurs de fichier et d'affichage est définie et le rapport d'erreur est également E_ALL. J'ai redémarré mon serveur web Apache.

J'ai même mis ces lignes au début de mon script, et il n'attrape même pas de simples erreurs d'analyse. Par exemple, je déclare des variables avec un "$" et je ne ferme pas les déclarations";". Mais tous mes scripts montrent une page blanche sur ces erreurs, mais je veux voir la les erreurs dans la sortie de mon navigateur.

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

Que reste-t-il à faire?


1295
2018-06-27 19:09


origine


Réponses:


Ça fonctionne toujours pour moi:

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

Cependant, ceci ne permet pas à PHP d'afficher des erreurs d'analyse - la seule façon de montrer ces erreurs est de modifier votre php.ini avec cette ligne:

display_errors = on

2520
2018-01-29 11:25



Vous ne pouvez pas détecter les erreurs d'analyse lors de l'activation de la sortie d'erreur lors de l'exécution, car elle analyse le fichier avant d'exécuter quoi que ce soit (et comme il rencontre une erreur, il n'exécute rien). Vous devez modifier la configuration du serveur afin que display_errors soit activé et que le niveau error_reporting approprié soit utilisé. Si vous n'avez pas accès à php.ini, vous pouvez utiliser .htaccess ou similaire, selon le serveur.

Cette question peut fournir des informations supplémentaires.


133
2018-06-27 19:14



Dans votre php.ini:

display_errors = on

Puis redémarrez votre serveur Web.


120
2018-01-08 09:27



Pour afficher toutes les erreurs, vous devez:

1. Avoir ces lignes dans le script PHP que vous appelez du navigateur (typiquement index.php):

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

2. (a) Assurez-vous que ce script n'a pas d'erreurs de syntaxe

-ou-

2. (b) Définir display_errors = On dans ton php.ini

Sinon, il ne peut même pas exécuter ces 2 lignes!

Vous pouvez vérifier les erreurs de syntaxe dans votre script en exécutant (sur la ligne de commande):

php -l index.php

Si vous comprendre le script d'un autre script PHP alors il volonté afficher les erreurs de syntaxe dans inclus scénario. Par exemple:

index.php

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

// Any syntax errors here will result in a blank screen in the browser

include 'my_script.php';

my_script.php

adjfkj // This syntax error will be displayed in the browser

78
2018-01-29 09:52



Certains fournisseurs d'hébergement Web vous permettent de modifier les paramètres PHP dans le .htaccess fichier.

Vous pouvez ajouter la ligne suivante:

php_value display_errors 1

J'ai eu le même problème que le vôtre et cette solution l'a corrigé.


39
2018-05-18 15:01



Vous pouvez constater que tous les paramètres de "rapport d'erreurs" ou "erreurs d'affichage" ne semblent pas fonctionner dans PHP 7. En effet, la gestion des erreurs a changé. Essayez ceci à la place:

try{
     // Your code
} 
catch(Error $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

Ou, pour attraper des exceptions et des erreurs en une fois (ce n'est pas rétrocompatible avec PHP 5):

try{
     // Your code
} 
catch(Throwable $e) {
    $trace = $e->getTrace();
    echo $e->getMessage().' in '.$e->getFile().' on line '.$e->getLine().' called from '.$trace[0]['file'].' on line '.$trace[0]['line'];
}

29
2018-03-28 19:26



Cela fonctionnera:

<?php
     error_reporting(E_ALL);
     ini_set('display_errors', 1);    
?>

26
2018-05-05 13:23