2011-01-28 6 views
3

J'ai une session qui après 30 minutes d'inactivité est détruite ou après 23.4 heures est détruite.Session PHP Expiration

Le problème que j'ai est indépendamment de l'activité de la session est détruite après 30 minutes. Ainsi, si un utilisateur est constamment actif dans les 23,4 heures, la session doit être maintenue pendant 23,4 heures, puis détruite, obligeant l'utilisateur à se reconnecter, mais la session est détruite après 30 minutes, même si l'utilisateur est constamment actif pendant ces 30 minutes. Parce que le Garbage Collector regarde l'heure modifiée et non l'heure accédée, la session est mise à jour avec time() afin que l'heure modifiée soit mise à jour lorsqu'un utilisateur fait n'importe quoi sur le site.

Voici les paramètres de session php.ini:

Directive     Local Value  Master Value 
session.cache_expire  30    30 
session.cookie_lifetime  1800   1800 
session.gc_divisor   1000   1000 
session.gc_maxlifetime  84400   84400 
session.gc_probability  1    1 
session.save_handler  files   files 

Si vous avez besoin d'autre de la session des paramètres ini laissez-moi savoir.

Toute aide avec ceci serait grandement appréciée.

Merci

+0

Il y a une grande explication de la façon dont les deux options fonctionnent dans cette autre question StackOverflow: http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after- 30 minutes – Merijn

Répondre

3

session.cookie_lifetime est réglé à 30 minutes, de sorte que le témoin expirera après 30 minutes, il whont être envoyé au serveur sur la requête suivante (après 30 minutes se sont écoulées), et php émettra une autre session puisqu'il/elle (php) ne l'a pas recived dans la demande.

+0

Le cookie n'est-il pas mis à jour à chaque requête envoyée au serveur? – Nalum

+0

Oui, le cookie de session est renvoyé à chaque requête. – arnaud576875

+0

D'accord, je vais faire un petit test et supprimer la réponse si vous avez raison. –

0
  1. Ne pas toucher les paramètres par défaut des sessions. Laissez les valeurs par défaut.

  2. Vérifiez la durée de vie de la session à l'aide de la session elle-même.