Session php [Résolu]

Signaler
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009
-
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009
-
Bonjour à tous!!!

Voila,je développe un site en php et j'utilise des sessions.tout se passe bien(connexion et deconnexion),mais j'aimerai ajouter un peu de sécurité aux sessions!
J'aimerai savoir comment faire pour fermer automatiquement une session après un certain temps d'inactivité(comme dans yahoo mail)?
Merci pour votre aide..


PS:suis-je assez clair?

6 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

meuh...suis pas d'accord. PHP dispose d'un garbace collector pour nettoyer les sessions inactives.
Par défaut, toutes les sessions d'un serveur web sont stockées au même endroit. Cet endroit est paramètrable via le code PHP directement. L'intervale entre chaque nettoyage aussi. Ce que je fais généralement, moi, c'est que chaque appli web a son propre répertoire de stockage pour ses sessions, et ses paramètres pour le nettoyage des sessions.
Par défaut, ce nettoyage s'effectue toutes les 24mn d'inactivité.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
@Neige : c'est pas demain la veille si ja'i bien compris ;-)

@rudybiss : ça se nettoie tout seul.  Voir
http://www.php.net/manual/fr/function.session-save-path.php
pour changer le répertoire de session, et les paramètres de conf pour la durée :
http://www.php.net/manual/fr/session.configuration.php
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Il te suffit de stocker quelque part (une variable de session par exemple) la date d'actualisation de la session (à chaque affichage de page, par exemple).
A chaque fois, tu compares cette date d'actualisation de la session avec la date courante moins le délai d'inactivité maximum.
Si la session est trop ancienne, tu détruits les variables de session, les cookies de la session, et tu régénères un id de session.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009

A malalam!!

J'ai constaté dans le repertoire www du serveur un dossier "sessions",c'est ce repertoire dont tu parle????As-tu un tuto pour faire le nettoyage de ce repertoire?
Merci pour ta reponse!!
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
pffffffffffff j'ai besoin de vacances moi...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Messages postés
60
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
20 juillet 2009

@ malalam!

j'ai pu réaliser ce que je voulais(mais je ne sais pas si c'est bon la méthode),en fait j'ai fait un script javascript qui gere le temps d'inactivité sur la page(quand elle n'est pas rechargée) et une fois arrivé à terme,il previent l'utilisateur qu'il est déconecté et aussitot est renvoyé vers la page de connexion et aussi j'ai pris le soin de detruire la session lorsqu'il est redirigé vers la page de login,ainsi meme s'il utilise les boutons "precedent" ou "suivant" du navigateur,il ne peux plus acceder à son espace et est obligé de se reconnecter.
Mais je vais aussi explorer d'autres pistes pour comparer quelle est la meilleure méthode.

Merci pour vos astuces!!!!