Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 10/11/2012, 11h15   #1
gentil2005
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : mai 2007
Messages : 21
Points : 7
Points : 7
Envoyer un message via Skype™ à gentil2005
Par défaut Détection du timeout pour finir les SESSIONS

Bonjour à tous!

Je suis à la recherche d'une solution pour un petit souci! en effet, je veux créer une fonction qui détecte qu'un utilisateur n'a pas rechargé des pages du site pendant un certain temps et détruire sa session automatiquement. Je suis allé chercher sur google mais je n'ai rien trouvé de spécial à part ceci:

Code :
1
2
3
4
5
6
7
8
9
define('INACTIVITY_TIMEOUT',3600);
function check_timeout()
{
    if (time()>=$_SESSION['expires_on'])
    {
        logout();
    }
    $_SESSION['expires_on']=time()+INACTIVITY_TIMEOUT;
}
Je l'ai utilisé mais le résultat escompté n'est celui que j'ai eu, en fait, ce code ne fait rien du tout. mais si on peut partir de ceci? comment procéder pour déclencher un compte à rebours et le réinitialiser si la page est rechargé? merci
gentil2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2012, 11h22   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 467
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 467
Points : 21 274
Points : 21 274
Les sessions PHP ont déjà un timeout défini par le serveur.

Si tu veux un contrôle de ce temps au niveau de ton application, le code que tu nous montres est tout à fait valable.
Si tu l'as simplement copier/coller evidemment ça ne fait rien ; utilise le comme ça :
Code :
1
2
3
4
5
6
7
8
9
 
session_start();
define('INACTIVITY_TIMEOUT',3600);
if (time()>=$_SESSION['expires_on'])
    {
      session_destroy();
      echo 'session terminée';
    }
$_SESSION['expires_on']=time()+INACTIVITY_TIMEOUT;
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2012, 11h31   #3
gentil2005
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : mai 2007
Messages : 21
Points : 7
Points : 7
Envoyer un message via Skype™ à gentil2005
Merci beaucoup pour ton attention!

Je m'envais donc le tester et revenir vous dire quoi, merci!
gentil2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2012, 11h48   #4
gentil2005
Invité régulier
 
Homme
Développeur Web
Inscription : mai 2007
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : mai 2007
Messages : 21
Points : 7
Points : 7
Envoyer un message via Skype™ à gentil2005
Au fait, quand on fait le teste avant la déclaration de la variable session, ca ne pose pas de problème? parce que là j'essaie mais ca détruit les sessions et me déconnecte directement dans moins d'une seconde! je fais ceci:
Code :
1
2
3
4
5
6
7
	session_start();
	define('INACTIVITY_TIMEOUT',120);
	if (time()>=$_SESSION['expires_on'])
	{
		header ('Location:./includes/deconnexion.php');
	}
	$_SESSION['expires_on']=time()+INACTIVITY_TIMEOUT;
Je met à 120 secondes mais la connexion-déconnexion est instantané!
gentil2005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h32.


 
 
 
 
Partenaires

Hébergement Web