Skip to content

PHP : Afficher les erreurs

Alexandre Plennevaux edited this page Nov 9, 2017 · 2 revisions

Si lorsque tu testes un script php tu obtiens une page blanche, c'est qu'il y a probablement une erreur dans ton script et que l'affichage des erreurs est désactivé dans le fichier de configuration de PHP (le fichier php.ini).

Solution 1 : php.ini

Le plus dur est de localiser ce fameux fichier php.ini. Le mieux est de créer un fichier qui contient simplement un appel à la fonction phpinfo();

  1. créer un fichier info.php et mettre dedans :
<?php
phpinfo();
?>

et le sauvegarder. Le visiter ensuite : http://localhost/info.php. Faites une recherche php.ini dans la page. Notez le chemin absolu du fichier.

  1. Ouvrir php.ini dans votre éditeur favori (par ex: sudo atom /etc/php/7.0/apache2/php.ini)
  2. Effectuer une recherche en tapant le raccourci clavier Ctrl + F
  3. Dans le champ de recherche taper exactement ceci : display_errors
  4. Ce ne sera pas le premier que vous trouverez, mais le second. Voici à quoi cela ressemble dans le code de la page
	; This directive controls whether or not and where PHP will output errors,
	; notices and warnings too. Error output is very useful during development, but
	; it could be very dangerous in production environments. Depending on the code
	; which is triggering the error, sensitive information could potentially leak
	; out of your application such as database usernames and passwords or worse.
	; For production environments, we recommend logging errors rather than
	; sending them to STDOUT.
	; Possible Values:
	;   Off = Do not display any errors
	;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
	;   On or stdout = Display errors to STDOUT
	; Default Value: On
	; Development Value: On
	; Production Value: Off
	; http://php.net/display-errors
	display_errors = Off
  1. Modifier display_errors = Off et remplacer par display_errors = On
  2. Enregistrer votre fichier php.ini
  3. Relancer vos serveurs Apache (et éventuellement php-fpm)
sudo /opt/lampp/lampp start

ou

sudo service apache2 restart
sudo service php7.0-fpm restart

Solution 2 : dans ton script

Si vous n'avez pas accès à votre fichier php.ini, vous pouvez aussi activer l'affichage au niveau de votre code, en mettant ceci au tout début de votre script php:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL); 
/* 
E_ALL est un flag : 
Autres flags disponibles: E_WARNING , E_ERROR, E_NOTICE  */