Délai d'expiration de Session PHP
Je suis de la création d'une session lors de la connexion de l'utilisateur comme suit:
$_SESSION['id'] = $id;
Comment puis-je spécifier un délai d'attente de cette séance de X minutes, puis la faire exécuter une fonction ou une page de redirection une fois qu'il a atteint les X minutes??
EDIT: j'ai oublié de mentionner que j'ai besoin de la session en attente en raison de l'inactivité.
- double possible de Comment puis-je l'expiration d'une session PHP après 30 minutes?
Vous devez vous connecter pour publier un commentaire.
première, boutique de la dernière fois que l'utilisateur fait une demande
dans la demande ultérieure, vérifier comment il ya longtemps qu'ils ont fait leur demande précédente (10 minutes dans cet exemple)
$_SESSION['timeout']
var ne sera pas mis en premier lieu. Cependant, j'ai sauté toutes les autres choses de gestion de session parce que cette question concerne le délai d'attente seulement.Lors de la session expire, les données ne sont plus présents, donc quelque chose comme
redirige chaque fois que la session n'est plus active.
Vous pouvez définir combien de temps le cookie de session est en vie à l'aide de session.cookie_lifetime
EDIT: Si vous êtes calendrier des séances en raison d'un problème de sécurité (au lieu de commodité), utilisez la accepté de répondre, comme les commentaires ci-dessous montrent, c'est contrôlée par le client et n'est donc pas sécurisé. Je n'ai jamais pensé à cela comme une mesure de sécurité.
Viens de vérifier tout d'abord la session n'est pas déjà créé et si ne pas en créer un. Ici, je suis en train pendant 1 minute seulement.
Dans l'en-tête de chaque page a travaillé pour moi pendant les essais sur site(le site n'est pas encore en production). La page HTML, il tombe à la fin de la session, et juste en informe l'utilisateur de la nécessité de se connecter à nouveau. Cela semble un moyen plus facile que de jouer avec PHP logique.
J'aimerais faire quelques observations sur l'idée. Tous les pièges que je n'ai pas vu ?
Byterbit solution est problématique parce que:
pour les cookies, les réglages d'expiration par session.cookie_lifetime est la bonne solution de conception-sage et de la sécurité! pour l'expiration de la session, vous pouvez utiliser de la session.gc_maxlifetime.
expirant le cookies en appelant session_destroy peut produire des résultats imprévisibles parce qu'ils pourraient avoir déjà été expiré.
de faire le changement en php.ini est également une solution valable, mais elle rend l'expiration d'un délai global pour l'ensemble du domaine qui pourrait ne pas être ce que vous voulez vraiment - certaines pages peuvent choisir de garder certains cookies plus que d'autres.
source: http://www.daniweb.com/web-development/php/threads/124500