Olivier Pons

Ma Vie, mon univers et mes restes

Olivier Pons image en-tête

Chrome et perte de session : comment faire ?

Le 19/01/2012 à 09:01 · 1 commentaire

J’ai rencontré un problème incroyable : tout fonctionnait correctement sur tous les navigateurs : Internet Explorer, Firefox, et Safari. Mais pas sur Chrome ! Une fois n’est pas coutume, ce n’était pas Internet Explorer qui était le problème majeur !

Le problème est simple à expliquer : lorsqu’on s’inscrit sur http://papdevis.fr/ ou qu’on fait une recherche, j’enregistre le choix dans la session du côté du serveur. Rien dans les cookies.

  • Quand on clique sur « valider le devis », j’enregistre tout dans des variables de session côté serveur, et j’affiche un résumé de l’offre/proposition de devis.
  • De là, quand on clique sur « valider », hop, j’envoie simplement une variable "valider=1"

Seul problème : sur Chrome, le devis ne se validait pas parce que l’identifiant de session était réinitialisé ! Incroyable.

Grâce à ce lien, ma vie a changé : session-data-lost-in-chrome-only.

En fait, il fallait mettre un favicon, sinon Chrome continue à le chercher en boucle, et s’il ne le trouve pas, réinitialise la session.

Le genre d’erreur impossible à trouver (à moins d’avoir de la chance), parce qu’on n’arrive pas à imagine que le problème puisse venir du navigateur !

J’espère que mon article a évité à certains de se faire des cheveux blancs…

Flattr Chrome et perte de session : comment faire ?

Tags: développement · développement Internet · php

1 réponse↓

  • 1 fabien // 19/03/2012 à 16 h 24 min

    Merciiiiiiiiiiii !!
    2h que je cherche en vain d’où vient mon problème ! Effectivement juste en rajoutant le favicon, tout marche ! Comme je suis sur un site en cours de dev, le favicon n’avait pas encore été créé… De quoi s’arracher les cheveux ;)

Faire un commentaire

NB : ci-suivent les tags XHTML que vous pouvez mettre :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>