session n'expire jamais par lui-même
Je m à l'aide de la fonction de login de mon site avec la session.
Cette session de la mine devient expiré après quelques minutes, indépendamment du fait que l'utilisateur est connecté ou pas.
Maintenant ce que je veux, c'est que la session ne reçoit expiré lorsqu'un utilisateur se déconnecte.Si un utilisateur n'a pas déconnecter de son compte et puis revient au bout de 2-3 jours, même alors, il doit apparaître connecté.
j'ai trouvé quelques exemples où ils ont incresed le temps d'une session à l'expiration, mais je veux aussi qu'il ne doit expirer sur le journal d'événement par l'utilisateur quel que soit le temps qu'il a consacré à la session.
comment puis-je faire??
Edit:
session_cache_expire(0);
session_start();
est-ce l'écriture, à la manière de le faire ?
OriginalL'auteur developer | 2009-08-25
Vous devez vous connecter pour publier un commentaire.
Une solution qui est souvent utilisé, dans cette situation, est de :
De cette façon :
Et vous avez l'avantage de "ne jamais être looged", au moins du point de vue utilisateurs.
Noter également qu'en "normal" des séances, le cookie contenant l'id de session sera supprimé lorsque l'utilisateur ferme son navigateur -- donc, il sera déconnecté, peu importe la durée de la session de vie.
Avec la solution que je propose, vous êtes le seul qui établit combien de temps le biscuit doit rester sur l'ordinateur de l'utilisateur 😉
Cela signifie, cependant, que lorsqu'un utilisateur manuellement les journaux, vous avez pour supprimer à la fois sa session et les cookies, évidemment, il n'est donc pas immédiatement re-auto-connecté.
Bien sûr, vous devez être prudent sur ce que vous définissez dans le cookie : un cookie est pas tout à fait sûr, afin de ne pas stocker un mot de passe, par exemple 😉
En fait, cette façon de faire est de savoir comment le "se souvenir de moi" caractéristique des œuvres ; à l'exception, ici, vos utilisateurs n'auront pas à cocher une case pour activer la fonction "se souvenir de moi" 😉
Si vous n'avez pas le temps de développer ce genre de choses, une jolie façon rapide et sale est d'utiliser une requête Ajax sur toutes vos pages, qui vient de "ping" une page PHP sur le serveur. -- cela permet de garder la session active (mais ce n'est pas une bonne manière de faire les choses : vous aurez encore BEAUCOUP de sessions sur le serveur, vous aurez plein d'inutiles demande... et il ne fonctionne que tant que l'utilisateur n'a pas de fermer son navigateur).
Semble OK pour moi, au moins, -- il ne sera jamais "sécurité parfaite", comme toute personne utilisant le gars de l'ordinateur sera automatiquement connecté, mais cela devrait être suffisant, je suppose 🙂
ya je comprends la question de la sécurité. Et bien merci Martin 🙂
Je sais que c'est un assez vieux thread, mais je peux le faire en faisant de la session.gc_maxlifetime et de la session.cookie_lifetime à 0 dans mon php.fichier ini?
Oui, cela devrait fonctionner aussi.
OriginalL'auteur Pascal MARTIN
Vous ne pouvez pas le faire avec le PHP interne de gestion de sessions seul. PHP va toujours envoyer l'id de session dans un cookie de session qui expirera lorsque l'utilisateur ferme son navigateur. Pour atteindre une sorte d'auto-connexion, vous aurez besoin de quelques accompagnant code qui définit une plus longue durée de cookie sur le navigateur de l'utilisateur et les poignées de la reconnaissance de ces cookies et le mappage entre les cookies valeur et le compte d'utilisateur.
Veuillez noter que cela affecte grandement les problèmes de sécurité de sorte que vous aurez à prendre soin de beaucoup de choses. Veuillez lire les informations suivantes sur la façon dont une possible auto-login pourrait être de travail:
OriginalL'auteur Stefan Gehrig
Ne vous supprimez vos cookies, tandis que les essais? Sont les cookies? Avez-vous destory la session quelque part dans votre code?
Aussi, voir ma réponse à un autre post: Petite question sur les sessions en PHP qui explique comment rester connecté. Il suffit de ne pas faire une tâche cron/sheduled tâche si vous voulez que l'utilisateur de rester toujours connecté.
OriginalL'auteur