Jump to content

Problème de cache smarty et de cookies


FlexH

Recommended Posts

Bonjour à tous,

 

Je rencontre actuellement un problème avec ma boutique. Quand le cache est désactivé, pas de problèmes. En revanche, si j'active le cache Smarty, je concontre les problèmes suivants :

  • Impossible d'ajouter un produit dans le panier (ajax) : L'animation d'ajout est bien là, mais le panier ne se met pas àà jour.
  • Impossible de se logger en FrontOffice : Le login semble fonctionner car on a accès à son compte client, mais le userinfo ne se met pas à jour "Bienvenue, ( identifiez-vous )".
  • Impossible de se logger en BackOffice : Si le login est incorrect, j'ai le message classique, si je login est bon, je boucle.

Tout revient à la normale une fois le cache smarty désactivé.

Pour info, pas de problème en utilisant le cachefs. (mais pas top).

 

Ma configuration :

  • Prestashop 1.4.7.0
  • Varnish 2.1.3 / Nginx 0.7.67 avec PHP 5.3.3-7 en fastCGI
  • La boutique n'est pas en www.domain.com mais boutique.domain.com (j'ai donc ajouté le sous-domaine dans la configuration de Prestashop)

Ce que j'ai fais :

  • Désactiver Varnish : Pas de changement
  • Passer sur un apache2 : Pas de changement
  • Refaire les chown et les chmod des répertoires prestashop : Pas de changement
  • Installation d'un prestashop tout neuf (+ nouvelle base) : Même problème
  • Passage de smarty 3 à smarty 2 : Pas de changement

Après avoir parcouru le forum, je pense qu'il peut s'agir d'un problème de cookie, mais j'avoue que là, j'ai tout essayé !

 

Quelqu'un a t'il recontré ce problème ?

 

Merci pour votre aide.

 

David

Link to comment
Share on other sites

De rien Patanock ;) En tout cas, ravi de ne pas être le seul.

En gros, ta boutique de prod (sur un domaine www) fonctionne nikel alors que ta boutique de test rencontre le même problème que moi ?

 

Du coup, mon problème sera reglé le jour où je passerais ma boutique en prod sur son domaine final ?

Si ce n'est que ça, je peux faire avec. Mais je trouve quand meme cette situation étrange.

Link to comment
Share on other sites

Ma prod fonctionne, ma boutique de test en sous domaine sur une 1.4.5.1 fonctionne, mes anciennes boutiques en 1.3 également en sous domaine fonctionnent, par contre la dernière en 1.4.6.2 ne fonctionne pas correctement.

 

Elle était en 1.4.5.1 au début, et si j'ai bonne mémoire elle ne fonctionnait pas non plus. J'ai donc tenté l'update, et ça n'a rien changé.

 

Bref c'est inexplicable... Maintenant que je sais que ça vient de smarty, je vais peut-être creuser...

Link to comment
Share on other sites

Paul, je n'ai pas réussi à retrouver le post en question.

 

En attendant, j'ai du nouveau. Voici ce que j'ai trouvé dans mes logs :

PHP Notice:  Undefined variable: display_stores_footer in /home/flex/www/pk/tools/smarty/sysplugins/smarty_internal_data.php on line 291
PHP Notice:  Undefined variable: cmslinks in /home/flex/www/pk/tools/smarty/sysplugins/smarty_internal_data.php on line 291
PHP Notice:  Undefined variable: display_poweredby in /home/flex/www/pk/tools/smarty/sysplugins/smarty_internal_data.php on line 291"

J'ai ces erreurs à chaques pages, je ne sais pas si c'est lié, je vais tester.

 

Pour info, ces erreurs ne s'affichent pas sur mon shop, pourtant j'ai bien @ini_set('display_errors', 'on'); dans le smarty.inc.php et mon php.ini contient bien :

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On

 

Je continue à chercher.

Link to comment
Share on other sites

Problème des Undefined varibles résolu : C'est une erreur de ma part dans la conception de mon thème.

 

En revanche, cela ne change rien concernant mon problème initial.

Pas de cache smarty, tout est OK.

Cache smarty : Problèmes.

Link to comment
Share on other sites

Tester ça:

avec un logiciel FTP, aller dans le répertoire Tools/Smarty_V2 ou Smarty si vous utilisez la version 3 de Smarty, et effacer tous les fichiers .TPL, qui sont des fichiers générés par Smarty pour cacher le site... est-ce que ça donne quelque chose pour toi FlexH ?

Link to comment
Share on other sites

Désolé pour la réponse tardive.

 

Donc en vidant les répertoires cache et compile de smarty, ca ne change pas grand chose. Il se remplissent à chaque nouvelle page mais le problème reste le même.

Link to comment
Share on other sites

Paul, merci pour votre aide dans tous les cas !

La question reste ouverte car même si les performances sont très honnêtes sans l'utilisation du cache, j'aimerais bien pouvoir en profiter.

 

Merci d'avance pour votre aide.

 

David

Link to comment
Share on other sites

Bonjour Carl,

 

Je viens de regarder le bug tracker. Je suis tombé sur le bug suivant http://forge.prestashop.com/browse/PSCFI-4155 assez proche du miens.

 

J'ai donc récupéré les 3 fichiers du SVN pour les intégrer chez moi mais le problème persiste.

Avant de poster un bug j'aimerais bien réussir à voir si le problème vient de chez moi où s'il est dû à un bug de Prestashop.

 

J'ai creusé un peu et me suis aperçu que lorsque le cache est activé, le module editorial s'affiche sur toutes les pages alors qu'il ne devrait s'afficher que sur la home.

Link to comment
Share on other sites

Bonjour,

Je crois que Prestashop n'utilise le cache smarty que pour le bloc des catégories, donc si vous n'avez pas un nombre important de catégories, désactiver le cache smarty a trés peu d'impact.

Je ne vois pas de corrélation entre le cache smarty et votre problème de connexion au back office.

Concernant la connexion au back office, j'ai déjà eu se genre de symptôme résolu par l'effacement du cookie.

Link to comment
Share on other sites

Bonjour chantane,

 

La suppression du cookie solutionne quelque peu le problème (mais pas entièrement pour ma part).

Comme vous me le conseillez, je pense effectivement désactiver le cache smarty en attendant de résoudre le problème.

 

Concernant les performances, il y a quand même un impact non négligeable sur le temps de réponse :

 

Avec utilisation du cache Smarty

Lifting the server siege...	  done.
Transactions: 217 hits
Availability: 100.00 %
Elapsed time: 9.30 secs
Data transferred: 1.88 MB
Response time: 0.11 secs
Transaction rate: 23.33 trans/sec
Throughput: 0.20 MB/sec
Concurrency: 2.61
Successful transactions: 217
Failed transactions: 0
Longest transaction: 0.31
Shortest transaction: 0.07

 

Sans l'utilisation du cache Smarty

Lifting the server siege...	  done.
Transactions: 198 hits
Availability: 100.00 %
Elapsed time: 9.32 secs
Data transferred: 1.61 MB
Response time: 0.22 secs
Transaction rate: 21.24 trans/sec
Throughput: 0.17 MB/sec
Concurrency: 4.73
Successful transactions: 198
Failed transactions: 0
Longest transaction: 0.45
Shortest transaction: 0.14

Link to comment
Share on other sites

La seule utilisation du cache smarty que j'ai relevé dans le code prestashop concerne le bloc catégorie.

Si vous modifiez peu votre menu catégorie, vous pouvez éventuellement le rendre statique dans un module personnalisé et vous accélérez le temps de réponse.

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous,

je me permets de relancer ce topic car j'ai des symptomes quasiment identiques à FlexH, et que malheureusement cela intervient aussi bien quand le cache smarty est activé que lorsqu'il est désactivé !

De + l'ajout d'un article au panier est dans tous les cas problématique. Que ce soit depuis la page des catégories, l'ajout au panier donne une page blanche à la place des articles, et rien dans le panier; ou depuis la page article, ou le "glissé" vers le panier fonctionne (article listé dans le panier), mais accompagné d'autres articles en n'importe quelles quantités !

Aussi si on ajoute plusieurs fois l'article, le panier se réinitialise avec toujours 1x le modele selectionné + d'autres au hasard.

Pourtant, si on clique sur panier, : "votre panier est vide" !

Mes compétences ont atteint leurs limites...

 

j'ai les memes caractéstiques que FlexH à savoir

- version d'origine presta 1.4.7.0

- theme d'origine

 

--

Autre bug,

concernant l'authentification :

lors de la connexion, si le mot de passe est mal renseigné => erreur de mot de passe, (normal donc !)

mais si le mot de passe est correct, la validation ne renvoie nulle part et on reste sur la page d'authentification : authentification?back=my-account.php.

 

Je suis dans le flou... ;-s

 

merci d'avance en tout cas aux gentilhommes qui auraient une aide à m'apporter

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

Bonjour Nommam,

sur firefox et chrome, le bug est identique, depuis un autre ordinateur, c'est la même chose,

j'ai pensé à l'url rewriting et aux sous domaines, mais cela dépasse mes compétences et je ne sais dans quelle direction aller

Merci de ton aide en tout cas

 

****

Confirmation,

une bonne partie des choses est rentrée dans l'ordre quand j'ai modifié les URL & SEO setup !

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

  • 1 month later...

Salut Flexh,

 

J'ai vu que d'apres ta config tu fais tourner prestashop avec varnish...je serai interessé par le moyen que tu as utilisé pour adapter varnish a prestashop, car je me suis cassé les dents avec varnish et prestashop... Je n'arriver a rafraichir le cache varnish quand il y avait un update sur prestashop ( example changement de prix)....je n'arriver pas a purge le cache automatiquement..

 

Voila un peu long ...mais j'aimerai bien savoir comment tu as fait?

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

Salut Daasar,

 

Effectivement, il faut un module qui puisse dire à Varnish de se rafraîchir une page spécifique (et non vider complètement le cache) lors d'une mise à jour.

 

Actuellement, vu que ma boutique n'est pas encore lancée, je suis en train de fignoler tout ca, mais en gros :

 

- Soit via varnishadm

varnishadm -T 127.0.0.1:6082 purge req.url == "/mon_produit.html"

 

- Soit via du php pour envoyer une requette à varnish à grands coups de fsockopen()

 

Je suis en train de coder un petit module presta qui purgera le cache ondemand des fiches produits, des catégories et des parties CMS. Je le posterais surement ici une fois terminé.

 

En attendant, tu peux te faire un petit script à lancer à la main une fois tes mises à jours de fiches effectuées. C'est pas tip top comme solution, mais ça fonctionne ;)

 

Cordialement

  • Like 1
Link to comment
Share on other sites

Salut flexH,

 

Merci beaucoup pour ta réponse. J'avais pensé a la même solution via l'adm de varnish mais étant donné que j'ai des mise a jour de tarif tout les jours sur des dizaine de produit ce n'était pas gérable...

Si tu as besoin de testeur pour ton module je suis ton homme.. j'ai un serveur varnish qui tourne et configurer parfaitement a prestashop j'ai juste a changer l'ecoute pour le repluger

 

cheers,

 

Cordialement,

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