Question

Je ne l'ai jamais voulu permettre à un utilisateur de rester connecté pour toute la durée de temps donc je ne ai jamais vu une utilisation pour un « remember me » caractéristique . Je commencé à penser à la façon dont il a fait bien et je voudrais quelques éclaircissements.

Je stocke actuellement mes sessions dans une base de données. Ce qui m'a toujours perplexe était comment, même si je ne mets pas explicitement un cookie, on est placé dans mon navigateur. Je suis un peu confus parce qu'une session est une session et un cookie est un cookie. Je ne vois pas comment une session définit un cookie.

Je voudrais aussi savoir si, une autre simple réglage variable de session dans le tableau de session pour garder l'utilisateur connecté, serait suffisant ou encore aurais-je besoin de définir un cookie?

Était-ce utile?

La solution

  

Ce qui m'a toujours perplexe était comment, même si je ne mets pas explicitement un cookie, on est placé dans mon navigateur.

Un gestionnaire de session doit identifier quelle session appartient à quel utilisateur.

La grande majorité des bibliothèques de session font cela en définissant un cookie.

  

(est) une autre mise variable de session dans le tableau de session pour garder l'utilisateur connecté serait suffisant ou encore aurais-je besoin de définir un cookie?

La plupart des bibliothèques de session set cookies de session . Ce sont les cookies sans date d'expiration indiquée. Ils expirent lorsque le navigateur se ferme et ne suffisent pas à mettre en œuvre un « Remember Me » fonction (qui devrait persister à chaque redémarrage du navigateur, elle doit donc avoir un temps d'expiration explicite).

Autres conseils

Pour extraire les données de session en arrière à partir de votre base de données d'une clé est nécessaire. Ceci est appelé l'ID de session.

L'ID de session doit être stocké quelque part. Soit dans le cadre de la chaîne URL que les postes clients dos ou, plus communément, dans un cookie sur le client. Lorsque la demande est affichée, la session lit la valeur du cookie et sait qui enregistrent de se retirer de stockage de session.

Ceci se produit automatiquement.

La seule raison d'utiliser la session est de savoir si les données que vous souhaitez conserver est supérieure à 4 Ko (limitations du navigateur); ou si le temps nécessaire pour extraire les données de votre serveur est supérieure à la lecture de la mémoire externe de la session.

Si la quantité de données que vous stockez est inférieure à 4 Ko, je recommande fortement que vous venez de que dans le cookie pour commencer. Je stocke généralement des choses comme l'ID utilisateur, premier nom d'utilisateur, et un couple d'autres attributs. Gardez à l'esprit qu'il est trivial d'inspecter une valeur de cookies, de sorte que ces informations doivent être cryptées avant d'aller au client.

Une autre chose est de savoir si le temps de requête pour extraire les données dont vous avez besoin de la source d'origine est petite, puis choisir de le faire au lieu de le placer en session. De cette façon, vous obtenez seulement quand vous avez réellement besoin au lieu de chaque charge d'une seule page.

Expliquer la relation entre Cookie et Session:

PHP utilise des cookies pour identifier la session pour chaque utilisateur. C'est la seule façon plus fiable, car cookie est envoyé chaque fois que vous demandez un fichier à partir du serveur. En utilisant le jeton dans le cookie, qui est aussi l'identifiant de session, PHP recherchera le répertoire tmp pour voir si la session existe. Si la session existe, les variables sont chargées à partir du fichier correct et vous serez en mesure d'accéder aux variables de cette session.

Par conséquent, les cookies stockent l'identifiant de session qui est nécessaire pour identifier quel utilisateur utilise quelle session. Ceci est aussi comment Détournement de session venir au sujet, quand les gens peuvent changer la session d'identification cookie à utiliser l'identifiant de session d'une autre personne.

La mise en œuvre de la session de PHP sous-jacente définit le cookie. Vous pouvez modifier cela et avoir la valeur d'ID de session passée dans la chaîne de requête, mais je ne le recommande pas. Vous n'utilisez pas le cookie, ne PHP. Il fait référence à la valeur d'ID de session stockée dans le cookie pour effectuer des recherches aux données de session.

  

Je voudrais aussi savoir, si le réglage simplement une autre variable de session dans le tableau de session pour garder l'utilisateur connecté serait suffisant ou encore aurais-je besoin de définir un cookie?

Dès que l'utilisateur ferme le navigateur, la session est tué et le cookie est supprimé. Je ne crois pas tout mécanisme quitte à persister la valeur de la session, et pour une bonne raison.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top