Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2006, 13h56   #1
Nouveau Membre du Club
 
Avatar de flydragon
 
Inscription : février 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 121
Points : 25
Points : 25
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
flydragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h23   #2
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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 :
1
2
 
ini_set("session.lifetime",600);
3.avec un set cookie
Code :
setcookie("moncookie",valeurducookie, time()+600, "/", ".mondomaine.com",0);
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h25   #3
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Heu.....je crois qu'il est allergique aux cookies

Citation:
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
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h26   #4
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
dsl javais pas lu le pas de cookies ;jai modifié mon poste pour les allergiques au cookies
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h33   #5
Nouveau Membre du Club
 
Avatar de flydragon
 
Inscription : février 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 121
Points : 25
Points : 25
merci pour vos réponse
mais le souci est que je n'ai pas de session.lifetime dans mon php.ini
flydragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h37   #6
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h41   #7
Nouveau Membre du Club
 
Avatar de flydragon
 
Inscription : février 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 121
Points : 25
Points : 25
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
flydragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h50   #8
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
honnetement je vois pas d'ou ça peut venir
(meme avec le ini set ça marche pas?)

Code :
ini_set("session.gc_maxlifetime",600);
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h53   #9
Nouveau Membre du Club
 
Avatar de flydragon
 
Inscription : février 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 121
Points : 25
Points : 25
si j'ai bien session.gc_max_lifetime mais je n'ai pas de session.lifetime
flydragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 15h55   #10
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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 :
session.gc_max_lifetime = 600
si ça marche tjs pas tu met dans ton fichier php
Code :
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
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 16h00   #11
Nouveau Membre du Club
 
Avatar de flydragon
 
Inscription : février 2006
Messages : 121
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 121
Points : 25
Points : 25
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
flydragon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 16h03   #12
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
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
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2006, 16h03   #13
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
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 :
1
2
3
4
5
6
session_start();
if(time() - $_SESSION['timeout'] > 600) // 600 secondes = 10 min
  {session_destroy();
  session_start();
  }
$_SESSION['timeout']=time();
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h58.


 
 
 
 
Partenaires

Hébergement Web