Jump to content

Mode débug uniquement pour les développeurs


spip93

Recommended Posts

Bonjour à tous et à toutes,

Il y a quelques jours j'ai entendu parler qu'on pouvait mettre en mode débug un site sous Presta, uniquement pour les développeurs, SANS que ça n'affecte les clients sur le F.O (en gros, afficher le mode débug en fonction de l'adresse IP).

J'ai donc fait une recherche sur Internet et je suis tombé sur ce tuto de juin 2014 (voir ici)

En gros, l'auteur écrit qu'il faut modifier le fichier config/defines.inc.php et passer :

define('_PS_MODE_DEV_', false);

en

define('_PS_MODE_DEV_', true);

puis à la ligne 32 du fichier, remplacer :

if (_PS_MODE_DEV_)

par

if (_PS_MODE_DEV_ && in_array($_SERVER['REMOTE_ADDR'],array('::1','localhost','127.0.0.1','xx.xx.xx.xx')))

en mettant notre adresse IP à la place de xx.xx.xx.xx

J'ai la version 1.6.1.6 de Prestashop d'installée et malheureusement cette astuce ne fonctionne pas (plus) (ou alors, je n'ai pas compris comment faire).
Voici ce que j'ai entre les lignes 27 et 30 de defines.inc.php dans le dossier Config de Prestashop :
 

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

puis entre les lignes 31 et 40, ceci :

31      /* Compatibility warning */
32      define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false);
33      if (_PS_MODE_DEV_ === true) {
34          @ini_set('display_errors', 'on');
35          @error_reporting(E_ALL | E_STRICT);
36          define('_PS_DEBUG_SQL_', true);
37      } else {
38          @ini_set('display_errors', 'off');
39          define('_PS_DEBUG_SQL_', false);
40      }

Vous pouvez voir qu'en ligne 32 j'ai :

define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false);

et non

if (_PS_MODE_DEV_)

comme indiqué dans le tuto.
D'ailleurs, j'ai cherché

if (_PS_MODE_DEV_)

dans le fichier, je ne l'ai trouvé nulle part.


Qu'à cela ne tienne, en ligne 29 à la place de :

define('_PS_MODE_DEV_', false);

j'ai mis :

define('_PS_MODE_DEV_', true);

Et en dessous, après l'accolade fermante de la ligne 30, AVANT "Compatibility warning", j'ai mis, à partir de la ligne 31 :

if (_PS_MODE_DEV_ && in_array($_SERVER['REMOTE_ADDR'],array('::1','localhost','127.0.0.1','xx.x.xx.xxx ')))

avec, à la place de xx.x.xx.xxx mon adresse IP.
Comme ça ne fonctionnait pas, j'ai laissé Mode Dev en true et j'ai remplacé le code de Webbax par celui d'Adrien qui a posté un message en juin 2018 :
 

if (_PS_MODE_DEV_ && in_array($_SERVER['REMOTE_ADDR'],array('::1','localhost','127.0.0.1','VOTRE_IP')))
{
    define('_PS_MODE_DEV_', true);
    define('_PS_DEBUG_PROFILING_', true);
}
if (_PS_MODE_DEV_ && !in_array($_SERVER['REMOTE_ADDR'],array('::1','localhost','127.0.0.1','VOTRE_IP')))
{
    define('_PS_MODE_DEV_', false);
    define('_PS_DEBUG_PROFILING_', false);
}

En remplaçant, bien sûr "VOTRE_IP" par mon adresse IP.
Cependant, ça ne fonctionne pas plus et je suis revenu à la version initiale du fichier, avant toutes ces modifs.

Du coup, je voulais savoir si quelqu'un aurait une "astuce 2018", en remplacement de celle-ci d'il y a 4 ans, adaptée à la version 1.6.1.6 (qui m'intéresse) et (éventuellement une autre) adaptée à la version 1.7.x (qui pourrait intéresser les personnes tournant sous cette version de Prestashop) ?
Un grand merci à vous par avance.
Bonne journée ;-)

Edited by spip93 (see edit history)
Link to comment
Share on other sites

Attention chez certains hébergeur l'adresse IP vue par PrestaShop n'est pas celle de votre PC, mais celle d'un proxy-cache (car pour pouvoir vendre cher des solutions rikiki il faut tricher).

En général je modifie la manière d'affecter la variable PS_MODE_DEV en fonction d'un paramètre secret dans l'url (genre ?i-want-debug=1)

Pour palier au problème de proxy/cache si l'hébergeur à bien fait son travail, il faut remonter la chaine des x-forwarded-for ou toute autre entête standardisé

Ce genre de fonction peut faire le job à condition que les ip du/des proxies soient connues

http://area51.enter-solutions.com/snippets/78

Edited by doekia (see edit history)
Link to comment
Share on other sites

  • 1 year later...

Bonjour, j'ai le même souci et le mode debug ne s'active pas. 

A moins que j'ai raté quelque chose ? Il faut mettre sur true et c'est tout ? Ou il y a autre chose à faire ?

Merci pour vos réponses

Link to comment
Share on other sites

@spip93 j'ai vidé le cache mais toujours rien...

Il me semble qu'il y avait une autre manip à faire pour voir les erreurs après avoir mis sur "true" non ? Je ne me souviens plus.

Après je ne sais pas si ça a un rapport mais j'ai un VPS 

Link to comment
Share on other sites

Excusez-moi, je ne me souviens plus (ça va bientôt faire 2 ans), mais il me semble que j'avais fini par désactiver la fonction parce que soit ça ne fonctionnait pas, soit ça me provoquait une panne ou quelque chose comme ça.

Je ne peux que vous conseiller de vous adresser directement à Doekia (en MP peut-être) qui en sait beaucoup beaucoup plus que moi là-dessus.

Désolé de ne pas pouvoir vous aider d'avantage 😕

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...