Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 11-07-2007 13:47:02

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

Zend_Session::isExpired ?

Salut,

Je suis en train de découvrir le Zend Framework, et je me heurte à un problème avec Zend_Session.

j'ai une page de login où on s'authentifie, et on garde le pseudo dans une variable de session. Je fais en sorte que la session expire au bout d'une heure (3600 secondes).

Code:

$session = new Zend_Session_Namespace('toto');
$session->setExpirationSeconds(3600);
        
$session->pseudo= $pseudo;

Question toute bête : comment on fait pour savoir si la session a expiré ? Y'a pas de méthode Zend_Session::isExpired(), à la manière de Zend_Http_Cookie::isExpired()...

Merci pour vos réponses.

Hors ligne

 

#2 11-07-2007 15:31:55

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Zend_Session::isExpired ?

Si quand tu restaures ta session toutes tes données ont disparu, c'est qu'elle a expirée (il y a peut-être plus malin, mais ça, ça marche en tout cas !)

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 11-07-2007 15:49:36

ALkyD
Membre
Lieu: Limoges
Date d'inscription: 11-07-2007
Messages: 69
Site web

Re: Zend_Session::isExpired ?

J'ai essayé plusieurs solutions comme tester les variables :

Code:

if (! isset($session->pseudo))
{
    echo 'a expiré';
}

Ne marche pas (la clé 'pseudo' existe toujours dans $_SESSION).

Code:

if ($session->pseudo == '')
{
    echo 'a expiré';
}

Ca a l'air de marcher mais c'est pas très propre. Il suffit de vider la variable 'pseudo' (lors d'un traitement PHP)pour se déconnecter de la session...

Code:

if (time() - $_SESSION['__ZF']['toto']['ENT'] < 0)
{
   echo 'a expiré';
}

En utilisant la méthode setExpirationSeconds(), un tableau associatif $_SESSION['__ZF']['nom du namespace']['ENT'] est crée avec le timestamp limite de la session. En récupérant ce timestamp qu'il reste à la session avant qu'elle soit expirée, ca pourrait marcher mais ça fait vraiment bidouillage...

Dernière modification par ALkyD (11-07-2007 15:50:30)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages