IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modification durée de session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 29
    Points : 26
    Points
    26
    Par défaut Modification durée de session
    Bonjour,

    J'ai une application PHP qui tourne en intranet avec identification des gens qui s'y connectent (5-6 à tout casser) et quelques variables de session. LEs gens étant seuls dans leur bureau il n'y a pas de risque particulier a avoir des sessions de longue durée, et pour tout dire ils en ont marre de devoir s'identifier dès qu'ils passent 24 minutes à faire autre chose... pourtant ils doivent être identifiés pour que leurs actions soient enregistrées.

    Le problème c'est que je n'arrive pas à augmenter la durée de session qui reste bloquée sur les 1440 sec. par defaut quoi que je fasse.

    J'ai beau agir sur session.gc_maxlifetime ça n'est pas pris en compte.

    En dernier ressort j'ai tenté ce code (pris je ne sais plus où) sans effet non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    session_cache_limiter('private');
    session_cache_expire(720);
    ini_set('session.gc_maxlifetime', 43200);
    session_start();
    Voici les réglages php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Session Support 	enabled
    Registered save handlers 	files user
    Registered serializer handlers 	php php_binary wddx
     
    Directive	Local Value	Master Value
    session.auto_start	Off	Off
    session.bug_compat_42	On	On
    session.bug_compat_warn	On	On
    session.cache_expire	180	180
    session.cache_limiter	nocache	nocache
    session.cookie_domain	no value	no value
    session.cookie_httponly	Off	Off
    session.cookie_lifetime	0	0
    session.cookie_path	/	/
    session.cookie_secure	Off	Off
    session.entropy_file	no value	no value
    session.entropy_length	0	0
    session.gc_divisor	100	100
    session.gc_maxlifetime	1440	1440
    session.gc_probability	0	0
    session.hash_bits_per_character	4	4
    session.hash_function	0	0
    session.name	PHPSESSID	PHPSESSID
    session.referer_check	no value	no value
    session.save_handler	files	files
    session.save_path	/var/lib/php5	/var/lib/php5
    session.serialize_handler	php	php
    session.use_cookies	On	On
    session.use_only_cookies	Off	Off
    session.use_trans_sid	0	0
    Des idées sur ce qui ne va pas ou d'autres solutions ?

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    104
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 104
    Points : 71
    Points
    71
    Par défaut
    ben moi j'ai fait une variable define("session_timeout","10000");
    et dans les pages protégées je teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //si le temps d'inactivité est dépassé on écrase la session 
    	if(time()-$_SESSION['dernier_acces'] > session_timeout)
    		deconnexion();
    	//sinon on rafraichit le temps de session au temps courant et on affiche la page
    	else
    	{
    		$_SESSION['dernier_acces']=time();
    et ça devrait marcher

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Merci de ta réponse, frboyer, mais je saisis mal comment le fait de modifier une variable de session peut agir sur la durée de session.

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    session.gc_maxlifetime n' est pas le bon paramétre, il faut modifier la durée de vie des caches !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    session.gc_maxlifetime n' est pas le bon paramétre, il faut modifier la durée de vie des caches !
    Alors je comprend vraiment mal, ce n'est pas justement ce que fait l'instruction ci-dessous dans mon code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session_cache_expire(720);

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Oui effectivement et en plus il est bien placé avant l'init de session

    Le limiteur de cache est remis à la valeur par défaut de session.cache_limiter à chaque démarrage de script PHP. Donc, vous devrez appeler session_cache_limiter() à chaque page, et avant session_start().
    Alors oui je suis comme toi je t'avais mal lu au départ, mais c' est dur dur de comprendre le pourquoi !

    J'ais trouvé ceci a voir ...
    The actual headers that are set using the values described above are:

    public:
    Expires: pageload + 3 hours
    Cache-Control: public, max-age=10800

    private:
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: private, max-age=10800, pre-check=10800

    nocache:
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache

    private_no_expire:
    Cache-Control: private, max-age=10800, pre-check=10800

    D'autre part il semblerait que dans certains réseaux d'entreprise , l'inactivitée fait tomber le réseaux ?? qu'en est-il chez toi ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 29
    Points : 26
    Points
    26
    Par défaut solution
    Bonjour,
    J'ai finalement résolu mon problème en modifiant directement la valeur de gc_maxlifetime dans le php.ini.
    Ce qui est valable pour mon serveur en intranet mais peu recommandable sur un serveur Internet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] limiter durée de session
    Par flydragon dans le forum Langage
    Réponses: 12
    Dernier message: 14/06/2006, 16h03
  2. modification variable de session
    Par tibtibby dans le forum ASP
    Réponses: 7
    Dernier message: 09/06/2006, 13h42
  3. [Sécurité] Problème durée de session
    Par flydragon dans le forum Langage
    Réponses: 10
    Dernier message: 15/05/2006, 09h19
  4. [JSF] Durée des sessions
    Par bslota dans le forum JSF
    Réponses: 1
    Dernier message: 18/01/2006, 10h04
  5. [VB.NET] Durée de session limitée ?
    Par Pari dans le forum ASP.NET
    Réponses: 3
    Dernier message: 28/04/2004, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo