1 votes

Où chercher si le site web perd la session de l'utilisateur ?

Il y a quelques jours, j'ai soudainement remarqué que sur mon site web, lorsque je remplis un formulaire d'un lieu par exemple (POST) et que je fais ensuite une redirection pour afficher ce lieu, la session de l'utilisateur se perd. Si je rafraîchis cette page, je suis à nouveau connecté. Cela se produit également dans un autre formulaire+redirection.

Cela ne se produit que sur le serveur de production. Sur le serveur de transit (même configuration que le serveur de production) et sur le serveur local, tout fonctionne bien.

Ma pile en production est Apache, memcache (sessions), PHP, Symfony1.4, MySQL.

Une idée de l'endroit où je dois chercher ? Apache, quoi ? Memcache ?

Merci !

Modifier

  • Ce n'est pas suhosin, car je n'ai pas activé l'extension.
  • Cela ne se produit qu'après des POST et une redirection d'en-tête.

1voto

aron Points 90

J'ai trouvé l'erreur, et ça n'a rien à voir avec ça. Le code suivant la cassait. Je l'ai juste commenté. Je ne sais toujours pas pourquoi, mais au moins le bug est éliminé. Je vais devoir demander aux gars de Symfony.

// clear cache
$cacheDriver = $this->getTable()->getAttribute(Doctrine::ATTR_RESULT_CACHE);
$cacheDriver->deleteByPrefix('tour.'.$this->id);

0voto

OmegaDestroy Points 31

Je suppose qu'il y a deux choses :

  1. a session_start() est absent
  2. Vous n'utilisez pas de cookies de session et la variable de requête a été perdue en faisant header('Location', ...)

J'utiliserais Firebug et son Persist dans l'option Net pour vérifier si toutes les demandes ont porté le PHPSESSID cookie ou variable de requête. En supposant que c'est le cas, je vérifierais si session_start() manquait sur le Location la page cible de l'en-tête.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X