Vous venez d’apporter une petite modification à votre boutique tel que l’ajout ou la mise à jour d’un module, et c’est le drame: Ecran blanc et plus aucun accès au back-office !!!

En l’absence de toute indication d’erreur, il faut avant tout définir si le bug se situe dans le front end (codes exécutés par le navigateur) ou dans le back end (codes exécutés sur le serveur). A ne pas confondre avec les termes de front et back office qui désignent respectivement la partie visible du site, et son interface d’administration.

Pour révéler des problèmes liés au front-end donc, il suffit d’ouvrir les outils de développement que vous trouverez dans les options de votre navigateur ou en utilisant la touche F12 du clavier. Une fenêtre apparaît dans laquelle vous n’avez plus qu’à choisir l’onglet « Console » pour afficher les éventuelles erreurs.

Il s’agira essentiellement de problèmes liés soit au chargement d’une ressource qui n’aboutit pas, soit à un problème de code javascript, le deuxième type étant souvent causé par le premier. Dans ce cas de ressource manquante, vérifiez l’adresse utilisé par le code pour la charger.

Si tout est ok sur la console du navigateur, il faut envisager un problème dans l’exécution du code sur le serveur.

Par défaut, le serveur n’affiche pas les erreurs qu’il rencontre, sur le navigateur. Il faut pour cela le lui demander et préciser le niveau de rapport d’erreur soit en modifiant le fichier de configuration de PHP (c’est lui qui interprète votre code sur le serveur), soit en insérant dans les premières lignes de votre code, ceci :

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

Ne vous inquiétez pas, PrestaShop le fait pour vous ! A condition là aussi de le lui demander, en activant le mode debug. Pour cela tout dépend de la version utilisée.

Jusqu’à la version 1.4, éditez le fichier « config.inc.php » dans le dossier « config » et passez le paramètre « display_errors » à « on » en remplaçant les lignes :

/* Debug only */
@ini_set('display_errors', 'off');

par :

/* Debug only */
@ini_set('display_errors', 'on');

v1.5 à v1.7 cela se passe cette fois dans le fichier « defines.inc.php » toujours dans le dossier « config » en passant le paramètre » _PS_MODE_DEV_  » à « true » en remplaçant :

/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', false);
}

par:

/* Debug only */
if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}

A noter que pour la version 1.7, le mode debug est désormais directement activable via le menu « paramètres avancés -> performances » du back office.

En mode débug, si l’erreur provient bien du code PHP exécuté sur le serveur, les informations relatives s’afficheront sur votre page accompagnées d’une liste, retraçant les dernières étapes de l’exécution du code précédant l’erreur.

Bon débogage !