Les sessions et les cookies de sessions

Petit nouveau ! | 6 Messages

22 sept. 2009, 06:58

Bonjour à tous.

Je pense connaître le fonctionnement des sessions qui s'arrêtent à la fermeture du navigateur et celui des cookies à qui on donne une durée de vie mais j'ai du mal a comprendre le concept de cookie de session qui permettrait à une session de vivre au delà de la fermeture du navigateur. Est-ce que quelqu'un pourrait m'expliquer concrètement le principe?

Merci d'avance.

Eléphant du PHP | 94 Messages

22 sept. 2009, 09:33

Lorsqu'un visiteur s'identifie sur ton site,
le serveur lui attribue un identifiant unique de session et
le stocke sur son disque (/tmp généralement),
dans le même fichier que les variables de session associées

Mais comment peut-il savoir à quel visiteur appartient quelle session ?

Et bien dès qu'il crée un identifiant, il l'enregistre chez le client par le biais d'un cookie.
De cette façon, dès que le client visite une page après son identification,
il renvoie son cookie au serveur (à chaque requête http, un client va toujours renvoyer dans les entêtes
de ses requêtes les cookies qu'il possède sur son navigateur pour le domaine concerné)
comme pour dire "Je suis sur la session 123456".
Le serveur vérifie la session et détermine si l'authentification est toujours applicable.

Tu pourrais assimiler le système à une liste de soirée qu'a un videur par exemple,
quand tu arrives tu lui dit Je suis Mr Untel - il vérifie sur sa liste et te laisse ou non rentrer :)
A part que là c'est le serveur qui attribue le nom.

Petit nouveau ! | 6 Messages

22 sept. 2009, 11:47

Merci pour ta réponse mais avec quel code cela se traduit? Merci d'avance.

Mammouth du PHP | 991 Messages

22 sept. 2009, 12:31

Merci pour ta réponse mais avec quel code cela se traduit? Merci d'avance.
par un simple session_start(), ce que ta expliqué geoffroy est gérer automatique par PHP
DevOps, Symfony4, Hoa

Petit nouveau ! | 6 Messages

22 sept. 2009, 12:34

Merci beaucoup mais le soucis est que la session se termine à la fermeture du navigateur :?

Petit nouveau ! | 6 Messages

22 sept. 2009, 19:58

Personne?

Eléphant du PHP | 199 Messages

23 sept. 2009, 01:31

Google est ton ami.

http://www.phpsources.org/tutoriel-SESSIONS.htm

Il dit que la session dure en moyenne 30 minutes.

Mammouth du PHP | 985 Messages

23 sept. 2009, 01:41

Merci beaucoup mais le soucis est que la session se termine à la fermeture du navigateur :?
Ce n'est pas un soucis, c'est bien et normal pour une session.
Mais il est possible de limiter le temps d'une session avant la fermeture du navigateur.
Le cookie avec une session sert surtout a stocker ton identifiant de session.

La durée de vie d'un cookie est surtout un paramètre optionnel.
Quand la durée de vie n'est pas spécifiée -> la durée de vie correspond à la fermeture du navigateur.

Sinon le lien que Superpilou t'a donné plus haut devrait t'aider.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 6 Messages

23 sept. 2009, 06:53

Le cookie avec une session sert surtout a stocker ton identifiant de session.
Peut-on alors récupérer les données d'une session à partir de son identifiant stocké dans le cookie? Et comment?

Eléphant du PHP | 199 Messages

24 sept. 2009, 12:23

Il suffit de mettre les données de la session dans un cookie.
Ensuite tu les extraits du cookie pour les utiliser.
Voila un lien qui peut t'aider.
http://www.commentcamarche.net/contents ... ookie.php3
Si tu veux progresser il faut faire beaucoup de travail individuel pour éviter de dépendre
des autres.

Mammouth du PHP | 985 Messages

24 sept. 2009, 13:55

Peut-on alors récupérer les données d'une session à partir de son identifiant stocké dans le cookie? Et comment?
Voila,
Les données sont donc stockées ailleurs que dans le cookie.
Le cookie dans le cas d'une session stocke surtout l'identifiant de session.
Les données sont stockées coté serveur donc aucun besoin de re-stocker les données dans un cookie.
Pour le reste, se sera surement mieux expliqué dans les tutoriaux sur les sessions que tu trouveras sur google.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 6 Messages

24 sept. 2009, 18:01

Merci Superpilou et Dr@ke pour vos réponses.
Entre temps j'ai beaucoup cherché et à force de tests et expérimentation je suis arrivé enfin à piger le rôle des cookies de sessions et la façon de récupérer les données de session jusqu'à le délai maxi de validité de session. Encore merci à tous