Jump to content

[Résolu] Erreur fatale quand on copie un lien dans un navigateur privé


Recommended Posts

Bonjour, 

Depuis quelques temps on a un problème plus qu'étrange :

lien à tester

lorsque l'on copie ce lien dans un navigateur privé on obtient une erreur Erreur Fatale , c'est tout ce qui se trouve dans le body, rien dans network, dans apache on a un status 200.

On peu pas mettre en débug car on a des erreurs diverses a cause de plugin ou par exemple :

 

(1/1) ContextErrorException

Notice: Undefined index: my_account_url

Autant dire que cela complexifie les recherches, du coup on peut pas partager les urls du site ni faire des promotions du site, autant dire que c'est la catastrophe.

Une idée ? Merci !

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

ca n'a rien à voir avec une fenêtre privée (enfin oui mais non) mais avec votre cookie Prestashop

Il semblerait que celui-ci ne soit créé QUE si on passe par l'accueil donc votre frontController ne fait pas le job ou a été modifié/overridé

Link to comment
Share on other sites

Comment vous l'avez detecté (je suis développeur mais plus backend JAVA, et franchement j'ai pas percuté du tout on vois l'expérience qui parle bravo!) ? et comment faire revenir le fonctionnement classique car ia eu des developpeurs qui ont fait un peu tout et n'importe quoi dans le code j'en vois des nouvelles tous les jours ! comme c'est le site d'un client(qui est un ami) il faut bien justifier ses heures de travail hihih

Mais une surcharge du frontcontroller je pense pas je le verrais à quel endroit si c'était le cas ? 

De plus après avoir corrigé les erreur en mode DEBUG , une fois que je démarre le mode débug je n'ai plus l'erreur. mais bon on peut pas laisser ainsi car les clients se plaignent de lenteur.. Mais c'est pas un fix que je viens de faire , je suis un peu perdu -D

merci en tout cas

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

Dans chrome, j'ai ouvert la console et je n'ai pas vu de cookie Prestashop

Je suis allé sur l'accueil et le cookie s'est créé, j'ai alors pu aller sur votre lien.

Dans Classes/controllers/ controller.php

    /**
     * Renders controller templates and generates page content
     *
     * @param array|string $content Template file(s) to be rendered
     * @throws Exception
     * @throws SmartyException
     */
    protected function smartyOutputContent($content)
    {
        $this->context->cookie->write();
...

Soit le code est modifié soit il y a un override dans le répertoire /overrides

 

Autre possibilité, un mauvais contenu est envoyé dans le cookie (classes/cookie.php)

    /**
     * Magic method which adds data into _content array
     *
     * @param string $key Access key for the value
     * @param mixed $value Value corresponding to the key
     * @throws Exception
     */
    public function __set($key, $value)
    {
        if (is_array($value)) {
            die(Tools::displayError());
        }
....

Sachant que Tools::displayError() affiche Fatal error si aucun paramètre n'est passé:

    public static function displayError($string = 'Fatal error', $htmlentities = true, Context $context = null)
    {
....

 

Link to comment
Share on other sites

donc la je dois vérifier que ce code est présent ? 

ce qui est encore plus extraordinaire, j'ai activé le mode DEBUG , plus d'erreur, puis j'ai desactivé le mode débug, activé la vérification je jeton dans la partie front et je ne vois plus l'erreur.... comment est-ce possible ? 

Link to comment
Share on other sites

9 minutes ago, Eolia said:

Dans chrome, j'ai ouvert la console et je n'ai pas vu de cookie Prestashop

Je suis allé sur l'accueil et le cookie s'est créé, j'ai alors pu aller sur votre lien.

Dans Classes/controllers/ controller.php


    /**
     * Renders controller templates and generates page content
     *
     * @param array|string $content Template file(s) to be rendered
     * @throws Exception
     * @throws SmartyException
     */
    protected function smartyOutputContent($content)
    {
        $this->context->cookie->write();
...

Soit le code est modifié soit il y a un override dans le répertoire /overrides

 

Autre possibilité, un mauvais contenu est envoyé dans le cookie (classes/cookie.php)


    /**
     * Magic method which adds data into _content array
     *
     * @param string $key Access key for the value
     * @param mixed $value Value corresponding to the key
     * @throws Exception
     */
    public function __set($key, $value)
    {
        if (is_array($value)) {
            die(Tools::displayError());
        }
....

Sachant que Tools::displayError() affiche Fatal error si aucun paramètre n'est passé:


    public static function displayError($string = 'Fatal error', $htmlentities = true, Context $context = null)
    {
....

 

J'ai vérifié et oui le code est boen présent mais comment voir ou cela pète ?

Link to comment
Share on other sites

4 minutes ago, doekia said:

Avec les 1.7, tout est plus ou moins géré a la clé de 32 ... Faut +/- vider les cachés a la main toutes les 3 mn

je me vois mal dire au client vide ton cache toute les 3 minutes en plus ca va ralentir le bouzin... mais pkoir activation mode debug pour voir l'erreur , plus d'erreur ? et activation de la vérification du jeton en front corrige l'erreur ? 

 

Link to comment
Share on other sites

1 minute ago, doekia said:

Vide le cache de prof, vérifie qu'il n'y a plus de problème. Après... Je me suis jamais vu ne pas freiner les clients de se diriger vers des 1.7 boiteuse, qd les 1.6 sont parfaites

le cache de PROF ? (kezako ? )le cache je l'ai vidé plusieurs fois mais ca recommençais, seul l'activation du mode debug et desactivation + jeton en front fonctionne.

En fait le client a deja une version 1.6 et puis je suis un puriste dans les mise à jour de toutes les version stable ^^ (dans les textes) j'aime bien être à jour, j'ai plusieurs boutique en 1.7 (bon la 1.7.6.0 est une catastrophe j'avoue)

merci beaucoup en tout cas tout cela pour dire que je sais pas vraiment ce qui à résoud ce soucis !

Link to comment
Share on other sites

Bonjour,

comme mes camarade, je vous conseillerais le vidage de cache comme j'en parle dans cet article : https://www.mediacom87.fr/faq-comment-vider-le-cache-manuellement-sur-prestashop-17/

De plus, je rappellerais que le choix de la version 1.7 de PrestaShop impose de faire l'intégralité des mises à jour pour essayer, péniblement, de stabiliser votre version car entre la 1.7.5 et la 1.7.7 qui sort bientôt il existe des milliers de bugs corrigés.

Donc, peut être que le souci que vous rencontré est corrigé depuis des lustres.

Link to comment
Share on other sites

39 minutes ago, Mediacom87 said:

Bonjour,

comme mes camarade, je vous conseillerais le vidage de cache comme j'en parle dans cet article : https://www.mediacom87.fr/faq-comment-vider-le-cache-manuellement-sur-prestashop-17/

De plus, je rappellerais que le choix de la version 1.7 de PrestaShop impose de faire l'intégralité des mises à jour pour essayer, péniblement, de stabiliser votre version car entre la 1.7.5 et la 1.7.7 qui sort bientôt il existe des milliers de bugs corrigés.

Donc, peut être que le souci que vous rencontré est corrigé depuis des lustres.

c'est la première chose que nous avons fait d'ailleurs je precaunise directement un clear cache avant de me contacter (clear cache dans admin/performances). Mais cela n'avait pas résolu, je repète, en activant le mode DEBUG, magie ca a refonctionné, puis en repassant en mode classique le bug était parti apres avoir activé la vérification des jeton dans le front

comment mettre efficacement sans bug à jour la version de prestashop ? est-ce que one click upgrade est bien ? j'ai un autre site en 1.7.6.3 mais avec pleiiiiiins de plugins.

 

donc au final la résolution de ce bug est un peu mistérieux ? ^^

Link to comment
Share on other sites

Alors soyons très clair, vider le cache par le BO, performances. N'est absolument pas équivalent de vider le cache en vidant le répertoire mentionné, par FTP ou shell. C'est déplorable, mais c'est ainsi. Tentes donc la purge manuelle. Je ne dis pas que ce sera miraculeux, mais tant de fois cela a résolu des pb que je 'ne peux qu'insister

Link to comment
Share on other sites

2 minutes ago, doekia said:

Alors soyons très clair, vider le cache par le BO, performances. N'est absolument pas équivalent de vider le cache en vidant le répertoire mentionné, par FTP ou shell. C'est déplorable, mais c'est ainsi. Tentes donc la purge manuelle. Je ne dis pas que ce sera miraculeux, mais tant de fois cela a résolu des pb que je 'ne peux qu'insister

bin c'est pas la premiere fois que quand j'ai un bug je nettoi les cache depuis le ftp et ca résoud les "soucis"

merci toujours pas de preocédure de mise à jour de la version de prestashop  je trouve plutôt cette tache compliquée? (au moins quelque chose que wordpress fait plutot bien ^^)

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...