Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#26 27-10-2008 14:40:27

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Recréer une session avec un cookie

mikaelkael a écrit:

Hello,

Le nettoyeur de session s'exécute 1 (probability) requête sur 1000 (divisor). Si tu as peu de requêtes (10 par heure par ex.), le nettoyeur s'exécute donc en moyenne toutes les 100 heures. Tant que le fichier de session n'a pas été effacé, pour moi il est actif même si sa date est dépassée.

La session.gc_maxlifetime est utilisée par le nettoyeur de session au moment où il s'exécute. Avec mes valeurs, il s'exécutera (probablement) à chaque requête puisque 1/1 = 1.

A+

Ok !
Donc, si je comprends bien, certaines sessions dans des périodes creuses, voir mieux si je teste en local, devraient être valides même au delà de 3600 secondes puisque dans mon php.ini je suis sur une probabilité de nettoyage de 1/1000...
Je vais regarder ça, mais j'avais testé ce genre de truc au départ de mon projet et il m'avait bien semblé que les sessions étaient bien invalides au bout de 3600 secondes.
Bon je teste ça en local et je reviens !
précision : j'ai mis à 1/1000000 et je laisse tourner la pendule

Dernière modification par Jean-Marc Rigade (27-10-2008 14:50:34)

Hors ligne

 

#27 27-10-2008 14:44:55

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Recréer une session avec un cookie

Je ne connaissais pas du tout ce rapport de nettoyage.


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#28 27-10-2008 15:04:02

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Recréer une session avec un cookie

Hello,

Je crois qu'on s'est pas bien compris. Divisor doit être à 1 pour avoir 1/1 = 1 = 100% de chances de s'exécuter à chaque requête donc d'entraîner un effacement de tes sessions inactives. Si tu mets 1000000, tu as 0.00001% de chances d'être exécuter par un requête.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#29 27-10-2008 15:11:00

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: Recréer une session avec un cookie

Hello,

De plus :

"Session Garbage Collection Observation:

It appears that session file garbage collection occurs AFTER the current session is loaded.

This means that:
even if session.gc_maxlifetime = 1 second,
if someone starts a session A and no one starts a session for an hour,  that person can reconnect to session A and all of their previous session values will be available (That is, session A will not be cleaned up even though it is older than gc_maxlifetime)." (Source : http://php.net/manual/fr/ref.session.php)

Donc pour faire ton test, il faut qu'un autre client démarre une session sur ton serveur, puisque tu ne peux tuer ta propre session.

A+

Dernière modification par mikaelkael (27-10-2008 15:12:04)


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#30 27-10-2008 15:49:32

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Recréer une session avec un cookie

mikaelkael a écrit:

Hello,

Je crois qu'on s'est pas bien compris. Divisor doit être à 1 pour avoir 1/1 = 1 = 100% de chances de s'exécuter à chaque requête donc d'entraîner un effacement de tes sessions inactives. Si tu mets 1000000, tu as 0.00001% de chances d'être exécuter par un requête.

A+

Tout à fait.
En mettant 1/1000000 j'ai peu de chance qu'au bout d'une heure ma session soit supprimée...
Donc même après une heure et un peu plus d'inactivité elle devrait être toujours présente et active...

Pour simuler un autre client il suffit de lancer une autre instance de navigateur, pour preuve l'ID de session de la log.

Dernière modification par Jean-Marc Rigade (27-10-2008 15:51:26)

Hors ligne

 

#31 27-10-2008 15:59:40

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: Recréer une session avec un cookie

Après 3960 secondes sans aucune activité avec : $authSession->setExpirationSeconds(3600)
la session n'est plus valide et je ne suis plus considéré comme connecté au site web...

Peut on dire qu'avec 1/1000000, il est peu probable que la session soit nettoyée après seulement 3960 secondes ?

Je trouve tout ça plutôt normal mais je suis peut être à coté de la plaque.

Dernière modification par Jean-Marc Rigade (27-10-2008 16:08:07)

Hors ligne

 

#32 27-10-2008 16:06:31

neojick
Membre
Date d'inscription: 13-04-2008
Messages: 223
Site web

Re: Recréer une session avec un cookie

Ce sujet n'était pas inutile. En tout cas pour moi c'est bon, ce que je voulais fonctionne. Je rejetterai un coup d'œil à tête reposée avant de balancer sur le site en ligne.


Chan IRC de ZF en français : zftalk-fr

Hors ligne

 

#33 27-10-2008 16:51:34

JEDI_BC
Membre
Date d'inscription: 27-10-2008
Messages: 38

Re: Recréer une session avec un cookie

Il est à noter aussi que certaines installations automatiques de PHP ajoutent une tache cron qui sert de garbage collector.
Sous mon ubuntu server par exemple j'ai une tache qui se lance toute les 30 minutes :

[ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm

Le script maxlifetime :

#!/bin/sh -e

max=1440

for ini in /etc/php5/*/php.ini; do
    cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
    [ -z "$cur" ] && cur=0
    [ "$cur" -gt "$max" ] && max=$cur
done

echo $(($max/60))

exit 0

Je suis pas un pro en ligne de commande et autre taches cron mais ça ressemble fortement à du gc.

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