Se connecter avec
S'enregistrer | Connectez-vous

Gestion des sessions

Dernière réponse : dans Programmation

Bonjour à tous.

J'ai un problème concernant les sessions. Pour vous mettre dans le contexte, disons que j'ai un site d'e-commerce ou les utilisateurs peuvent mettre des choses dans un panier lorsqu'ils ne sont pas connectés. Le panier est dans ce cas représenté par un champs dans la session donc dans le tableau $_SESSION.

Maintenant j'aimerais avoir une page stat.php qui me fournit la somme des articles de toutes les personnes qui ont un panier créé (donc session ouverte). Pour cela je stocke les id de session encore ouverte en BDD.

Voici une partie du code de ma page stat.php :

  1. ...
  2. <body>
  3. <?
  4. // variable contenant le prix de l'ensemble des paniers
  5. $prix=0;
  6.  
  7. $query= "select * from session";
  8. $result = pg_query($query);
  9.  
  10. // je stocke l'id de session actuel
  11. $id_sess = session_id();
  12. while($row=pg_fecth_array($result)){
  13. session_id($row['id_session']); // change l'id de la session, pour que je puisse vérifier le panier des autres
  14. prix+=$_SESSION['prix']; // il y a sucette j'ai toujours que le prix de mon panier et pas des autres sessions
  15. }
  16. session_id($id_sess); // revient à ma session
  17.  
  18. echo "la somme est égale à $prix";
  19.  
  20. ?>
  21.  
  22. </body>
  23. ...


Si vous avez une idée, pour que je puisse vraiment récupérer le contenu du tableau de session d'un autre en changeant l'id de la mienne je suis preneur.

merci d'avance.

Autres pages sur : gestion sessions

Lassé par la pub ? Créez un compte

J'aurais pu faire ça, mais en fait c'est surtout pour éviter l'appel à des requêtes dans la BDD. Là je donne uniquement un exemple de ce que je veux faire. Mais le serveur php connait dans l'idéal la totalité des sessions en cours à un moment t. Est-ce qu'on ne peut pas retrouver le positionnement en mémoire de ces sessions avec leur id?

Ok merci j'avais effectivement vu qu'ils stockaient les variables et leur contenu dans un fichier temporaire. Mais je pensais aussi, qu'ils conservaient le tout en mémoire ;) 

Je vais essayer de chercher de ce côté. Effectivement j'ai dorénavant fait autrement, je me suis rabattu sur la base de données. Mais uniquement, pour la connaissance, j'ai bien envie de trouver comment faire en passant par les sessions ;) 
Lassé par la pub ? Créez un compte