2011-02-17 2 views
3

Je me demande s'il est possible de récupérer des données de session dans une base de données ou un fichier à l'expiration de la session. Par exemple quand j'ai un objet vivant dans ma session, le destructeur sera-t-il appelé quand la session expirera?Enregistrer les variables de session dans la base de données à la fin de la session

Fondamentalement, la question concerne la façon dont PHP gère les sessions lorsqu'elles expirent.

Merci pour votre aide!

Répondre

2

Il semble que vous pouvez utiliser la fonction session_set_save_handler pour définir un rappel qui est appelé chaque fois que la session est détruite.

En guise de remarque, je me demande si c'est un bon design d'enregistrer des données lorsque la session arrive à expiration, plutôt que de simplement l'enregistrer pendant la session.

+0

Mais cela ne vaut que pour la session en cours d'utilisation par la demande actuelle. Il ne sera pas appelé pour les sessions périmées que le ramasse-miettes nukes. –

0

Pour changer la durée de vie maximale pour une session, essayez ceci:

ini_set("session.gc_maxlifetime", "18000"); 

Cela va régler la durée de vie de 5 heures. Vous devez l'utiliser dans tous les scripts dont vous souhaitez modifier la durée de vie par défaut.

Pour obtenir la durée de vie d'une session:

echo ini_get("session.gc_maxlifetime"); 
Questions connexes