Jump to content

Messages sur commande > mauvais encodage?


Sylvain P.

Recommended Posts

Bonjour,

Problème récurrent si par exemple on fait un import via CSV ou via un module (import produit,etc).

Par acquit de conscience, vérifiez dans le Backoffice => paramètre avancé => Base de données

Dans "Encodage des fichiers par défaut" vous devez avoir : UTF-8

Link to comment
Share on other sites

24 minutes ago, magicbel said:

Bonjour,

Problème récurrent si par exemple on fait un import via CSV ou via un module (import produit,etc).

Par acquit de conscience, vérifiez dans le Backoffice => paramètre avancé => Base de données

Dans "Encodage des fichiers par défaut" vous devez avoir : UTF-8

Merci pour votre réponse :)

Effectivement, UTF-8 est bien sélectionné !

Link to comment
Share on other sites

C'est une nouvelle installation ou c'est un Prestashop qui tout d'un coup "bug"?

Expliquez un peu l'histoire de votre site histoire de mieux comprendre. (Avez vous utilisé un module d'import ou un csv? )

Vous dites dans vos commandes, oui mais ou ? Dans le BO? dans le pdf de la facture? sur le front office? 

Link to comment
Share on other sites

A vrai dire je n'avais jamais fait attention à cette rubrique, donc je ne pourrais pas dire si c'est depuis l'installation ou depuis peu ...

Je n'ai pas utilisé de module d'import ou de module traitant des CSV mais seulement des modules qui configurent mes produits, éditent des PDF etc. 

Il s'agit des messages qui sont indiqués sur la commande dans le back office, dans l'encart "messages" sur les détails de la commande.

Merci pour votre aide :) 

Link to comment
Share on other sites

Pour ceux qui ont le même problème, j'ai résolu le mien grâce à ce fil :

https://github.com/PrestaShop/PrestaShop/issues/9726

 

Changement à faire dans classes/tools.php :

   public static function htmlentitiesUTF8($string, $type = ENT_QUOTES)
    {
        if (is_array($string)) {
            return array_map(array('Tools', 'htmlentitiesUTF8'), $string);
        }
	return htmlspecialchars((string)$string, $type, "UTF-8");

        //USE htmlspecialchars NOT htmlentities
    }

 

  • Like 1
Link to comment
Share on other sites

Bonjour,

Finalement, cette solution n'a été efficace que sur les messages envoyés depuis les infos de commande, dans le back office.

Les messages envoyés par le client depuis la confirmation de commande sont toujours victimes de mauvais encodage ...

Je continue les recherches, mais si quelqu'un possède une solution, c'est avec plaisir :) 

Link to comment
Share on other sites

  • 1 year later...
  • 7 months later...

Hello,

J'ai trouvé comment corriger cela sur Prestashop 1.7.6.7

Edition du fichier admin/themes/default/template/controllers/orders/helpers/view/view.tpl

bloc commencant ligne 814

                  <p class="message-item-text">
                    {$message['message']|escape:'html':'UTF-8'|nl2br}
                  </p>

Remplacer le bloc précédent par celui ci

                  <p class="message-item-text">
                    {**{$message['message']|escape:'html':'UTF-8'|nl2br}*}
                    {$message['message'] nofilter}
                  </p>

Nico

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...
On 12/18/2020 at 10:55 AM, nicoh76 said:

bloc commencant ligne 814

                  <p class="message-item-text">
                    {$message['message']|escape:'html':'UTF-8'|nl2br}
                  </p>

Remplacer le bloc précédent par celui ci

                  <p class="message-item-text">
                    {**{$message['message']|escape:'html':'UTF-8'|nl2br}*}
                    {$message['message'] nofilter}
                  </p>

Nico

Surtout ne pas faire ça ! 

Si le message n'est plus filtré, rien n'empêche de passer du JS pour une attaque XSS.

C'est donc à vos risques et périls..

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
On 12/18/2020 at 10:55 AM, nicoh76 said:

Hello,

J'ai trouvé comment corriger cela sur Prestashop 1.7.6.7

Edition du fichier admin/themes/default/template/controllers/orders/helpers/view/view.tpl

bloc commencant ligne 814

                  <p class="message-item-text">
                    {$message['message']|escape:'html':'UTF-8'|nl2br}
                  </p>

Remplacer le bloc précédent par celui ci

                  <p class="message-item-text">
                    {**{$message['message']|escape:'html':'UTF-8'|nl2br}*}
                    {$message['message'] nofilter}
                  </p>

Nico

Bonjour

Fonctionne super ! merci

Link to comment
Share on other sites

On 1/21/2021 at 2:24 PM, NicolasV said:

Surtout ne pas faire ça ! 

Si le message n'est plus filtré, rien n'empêche de passer du JS pour une attaque XSS.

C'est donc à vos risques et périls..

Ah, avez-vous une autre solution alors ? :)

  • Like 1
Link to comment
Share on other sites

  • 9 months later...

Hello, 

De nouveau en 1.7.8.1 le problème est revenu... ah cela occupe bien!

admin/themes/default/template/controllers/orders/helpers/view/view.tpl orders n'existe plus, pas trouvé où cela a pu être déplacé. 

Peut être dans : xxxx/themes/default/template/controllers/dashboard/helpers/view

??? en cours d'investigation

Merci 

  • Like 1
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...