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 :

[Cookies] limiter durée de session


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de flydragon
    Inscrit en
    Février 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 121
    Points : 57
    Points
    57
    Par défaut [Cookies] limiter durée de session
    Bonjour
    quelqu'un sait il comment peut-on limiter la durée de vie d'une session à 10 minutes par exemple.
    Pour infos la commande session.gc_maxlifetime ne fonctionne pas sous windows
    de plus je ne veux pas utiliser de cookies
    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    3 solutions
    1.si tu as acces au php.ini
    session.lifetime qui fixe la durée de vie, en secondes, du cookie envoyé au client. La valeur 0 signifie "jusqu'à ce que le client soit fermé".
    Par défaut à 0. Donc si on le laisse à zéro la session dure jusqu'à la fermeture du navigateur, pour laisser les données durant 10 minutes, il faut remplacer 0 par 600 (= 10 minutes * 60 secondes dans une minute).
    2.si tu nas pas acces au php.ini tu peux le faire avec un ini set
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ini_set("session.lifetime",600);
    3.avec un set cookie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("moncookie",valeurducookie, time()+600, "/", ".mondomaine.com",0);

  3. #3
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Heu.....je crois qu'il est allergique aux cookies

    de plus je ne veux pas utiliser de cookies
    If it's not broken, don't fix it.
    BiliBa Built on top of Zend Framework

  4. #4
    Invité
    Invité(e)
    Par défaut
    dsl javais pas lu le pas de cookies ;jai modifié mon poste pour les allergiques au cookies

  5. #5
    Membre du Club Avatar de flydragon
    Inscrit en
    Février 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    merci pour vos réponse
    mais le souci est que je n'ai pas de session.lifetime dans mon php.ini

  6. #6
    Invité
    Invité(e)
    Par défaut
    ok ok as tu relancer le serveur apache?
    puis vérifie que t dans le bon ini tu faisun phpinfo() et en haut, tu auras le chemin vers le php.ini

    ps : si ta pas de session.lifetime tu le fais avec session.gc_maxlifetime c pareil

  7. #7
    Membre du Club Avatar de flydragon
    Inscrit en
    Février 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    oui j'ai bien relancé mon serveur apache et je suis bien dans le meme repertoire
    Mias quand je vais voir les infos sur les ssions il n'y a aps de sesion.lifetime
    Pour info j'ai PHP 5.1.4 et apache 2.0.58

  8. #8
    Invité
    Invité(e)
    Par défaut
    honnetement je vois pas d'ou ça peut venir
    (meme avec le ini set ça marche pas?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set("session.gc_maxlifetime",600);

  9. #9
    Membre du Club Avatar de flydragon
    Inscrit en
    Février 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    si j'ai bien session.gc_max_lifetime mais je n'ai pas de session.lifetime

  10. #10
    Invité
    Invité(e)
    Par défaut
    c identique , ça fais pratiquement les memes choses session.gc_max_lifetime et session.lifetime

    session.lifetime
    fixe la durée de vie, en secondes, du cookie envoyé au client. La valeur 0 signifie "jusqu'à ce que le client soit fermé". Par défaut à 0 (inactivé).
    session.gc_maxlifetime
    fixe la durée, en secondes, au-delà de laquelle les données considérées comme inutiles seront supprimées.

    As tu essayé dajouter dans le php.ini session.lifetime?

    Sinon
    dans le php.ini tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.gc_max_lifetime = 600
    si ça marche tjs pas tu met dans ton fichier php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set("session.gc_maxlifetime",600);
    si ça fonctionne tjs pas je ne vois que les cookies (comme indiqué au 2 ieme post) mais tu nen veux pas malheuresement

  11. #11
    Membre du Club Avatar de flydragon
    Inscrit en
    Février 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 121
    Points : 57
    Points
    57
    Par défaut
    et bein ca marche pas.
    Moi ce que je cherche a faire c'est detriure une session apres 10 minutes mais la rien ne se passe alors que j'ai bien mon session.gc_max_lifetime = 60

  12. #12
    Invité
    Invité(e)
    Par défaut
    je ne vois mis a part rajouter dans le php.ini la ligne session.lifetime =600

    sinon je peux plus taider, en esperant que qq 1 taidera car jaimerais aussi savoir si un jour ça marrive

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    L'autre solution, c'est de faire ton propre timeout.
    Tu mets en session le timestamp de la dernière action, tu compares avec le nouveau timestamp, et si il y a plus de 10 minutes entre les 2, tu détruis la session.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    session_start();
    if(time() - $_SESSION['timeout'] > 600) // 600 secondes = 10 min
      {session_destroy();
      session_start();
      }
    $_SESSION['timeout']=time();

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

Discussions similaires

  1. page login obligatoire et limiter durée session
    Par Korben-Dallas dans le forum Langage
    Réponses: 20
    Dernier message: 01/07/2010, 13h33
  2. [JSF] Durée des sessions
    Par bslota dans le forum JSF
    Réponses: 1
    Dernier message: 18/01/2006, 10h04
  3. detruire une cookie après fin de session
    Par MASSAKA dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 16h02
  4. [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