2010-02-25 4 views

Répondre

0

Je suggère d'enregistrer la date de création de la session dans la base de données et vérifier si la session expire comme:

if($db->checkExpiredSession('test') == true) { 
    $db->query('...'); 
} 

Juste une pensée.

1

Le problème que vous allez rencontrer: une session ne se contente pas expirer par lui-même, une session est a expiré la charge suivante page si l'utilisateur a attendu trop longtemps. Comme il n'y a pas de communication entre le navigateur et le serveur entre les demandes (action de l'utilisateur), le serveur ne saura pas si, par ex. l'utilisateur a juste fermé le navigateur (ou fait la vaisselle pendant que le site reste ouvert).

Donc je suppose qu'il n'y a rien de mal avec votre code car il vous dira si le sessin est expiré sur le prochain pageload (tant qu'il y a un pageload suivant :)).

Si vous vraiment besoin de vous assurer, la requête est exécutée après une session a expiré, je suppose que vous devrez enregistrer vos sessions sur une base de données et exécuter une -script « de nettoyage » sur chaque pageload pour exécuter votre requête et se débarrasser des sessions expirées. (par exemple, sauvegardez "lastUserAction" et comparez-le à n'importe quelle limite de session)

Questions connexes