Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre Expert
    Avatar de gentil2005
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2007
    Messages
    136
    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 : 136
    Points : 1 040
    Points
    1 040

    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    20 887
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 887
    Points : 27 264
    Points
    27 264

    Par défaut

    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;

  3. #3
    Membre Expert
    Avatar de gentil2005
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2007
    Messages
    136
    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 : 136
    Points : 1 040
    Points
    1 040

    Par défaut

    Merci beaucoup pour ton attention!

    Je m'envais donc le tester et revenir vous dire quoi, merci!

  4. #4
    Membre Expert
    Avatar de gentil2005
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2007
    Messages
    136
    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 : 136
    Points : 1 040
    Points
    1 040

    Par défaut

    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é!

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •