Une solution qui est souvent utilisé, dans cette situation, est de:
- ont une durée de la session pas trop long: il expirera si l'utilisateur n'est pas actif (c'est juste la façon dont cela fonctionne - et c'est mieux pour votre serveur si vous avez beaucoup d'utilisateurs)
- Lorsque l'utilisateur se connecte, vous définissez un cookie qui contient ce dont il a besoin pour être reconnu
- s'il revient sur le site (avec le cookie, et sans avoir de session active), vous utilisez les informations contenues dans ce cookie pour vous connecter automatiquement, en recréant la session en même temps.
De cette façon:
- vous n'avez pas des milliers de sessions "actifs" sans bonne raison
- vous gardez les sessions de manière standard fonctionnent
Et vous avez la l'avantage de «ne jamais être éliminé», du moins du point de vue de l'utilisateur. Notez également qu'avec les sessions "normales", le cookie contenant l'identifiant de session sera supprimé lorsque l'utilisateur fermera son navigateur. Il sera donc déconnecté, quelle que soit la durée de vie de la session.
Avec la solution que je propose, vous êtes celui qui met en place depuis combien de temps le cookie doit rester sur l'ordinateur de l'utilisateur ;-)
Cela signifie, cependant, que lorsqu'un utilisateur se déconnecte manuellement, vous avez pour supprimer à la fois sa session et le cookie, bien sûr - il n'est donc pas re-connecté automatiquement.
Bien sûr, vous devez faire attention à ce que vous définissez dans le cookie: un cookie est pas tout à fait sûr, il ne faut pas stocker un mot de passe en elle, par exemple ;-)
En fait, cette façon de faire est de savoir comment la fonction «se souvenir de moi» fonctionne souvent; sauf, ici, vos utilisateurs n'auront pas à cocher une case pour activer "se souvenir de moi" ;-)
Si vous n'avez pas le temps de développer ce genre de choses, un moyen rapide et sale est pour utiliser une requête Ajax sur toutes vos pages, cela ne fera que "pinguer" une page PHP sur le serveur - cela gardera la session active (mais ce n'est pas une bonne façon de faire les choses: vous aurez encore BEAUCOUP de sessions sur le serveur, vous aurez beaucoup de demandes inutiles ... et cela ne fonctionnera que tant que l'utilisateur ne ferme pas son navigateur).
i ont mis un cookie avec le nom d'utilisateur et un nombre aléatoire concaténé, puis Je l'ai stocké dans la base de données. Quand une page est appelée, je vérifie le cookie du système et le compare avec celui de la base de données si les deux correspondances puis j'affiche la personne comme connectée sinon. Et quand une personne se déconnecte j'ai mis le cookie à null. Est-ce la bonne façon ??? et est-ce sécurisé? – developer
Semble OK pour moi, au moins - ce ne sera jamais "la sécurité parfaite", comme toute personne utilisant l'ordinateur du gars sera automatiquement connecté, mais cela devrait suffire, je suppose :-) –
ya je comprends la sécurité problème. Merci Martin :-) – developer