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 :

fermeture de session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut fermeture de session
    Bonjour tt le monde,

    j'aimerai bien savoir comment fermer une session, j'utilise le fichier "timout.php" suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
    function logout()
    {
        // On remplit le cookie par une valeur fausse pour ne pas être réutilisé
     //   setcookie("sid", "session ended", time()+3600);
     
        // Invalidation de l'objet $_SESSION
        session_unset();
     
        // Destruction de l'objet $_SESSION
        session_destroy();
     
        // On redirige l'utilisateur vers la page d'accueil
        header('HTTP/1.1 401 Unauthorized ou Authorization required');
    //    header('location:http://localhost/intranet/index.php');
     
    echo '<script language="Javascript">
    <!--
    document.location.replace("http://localhost/intranet/index.php");
    // -->
    </script>';
     
     
      exit;
    }
    define ('SESSION_TIMEOUT', "120");
    if (isset($_SESSION['login']))
    {
        // On vérifie si le temps d'inactivité n'a pas été dépassé
        if(time()-$_SESSION['last_access'] > SESSION_TIMEOUT)
        {
      unset($_SESSION['id']);
      unset($_SESSION['type']);
      unset($_SESSION['name']);
      unset($_SESSION['team']);
      unset($_SESSION['username']);
      unset($_SESSION['mid']);
      unset($_SESSION['email']);
      unset($_SESSION['soldeconge']);
      unset($_SESSION['team']);
      logout();
        }
        else
        {
            // On stocke l'heure de dernière connexion
            // time s'exprime en secondes à partir du 01/01/70 à 00:00:00
            $_SESSION['last_access'] = time();
        }
    }
    ?>
    et je fais 'require ('timeout.php') dans les autres page, mais ça marche pas.

    merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 86
    Par défaut
    Salut,
    Juste une question, pourquoi n'utilises tu pas la durée de session définissable dans php.ini?
    edit: tu n'y as peut etre pas acces :/
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    merci bcp Dom_the_quaker pour ta reaction,

    dans le php.ini j'ai mis ça:

    session.gc_maxlifetime = 120

    et juste cette ligne qui indique un lifetime de session.

    ça jl'ai deja fais + le fichier timeout.php, mais ça n'a pas marchait.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 86
    Par défaut
    A part un probleme de config, je vois pas trop. Est ce que tes cookies sont activés sur ton navigateur? il me semble que les sessions php "trempent" dans une histoire de ce genre. (a confirmer par les experts).

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 44
    Par défaut
    salut

    je ne vois pas pourquoi tu vide té variables de session, vu que tu va invalidé et détruire ta session.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    function logout()
    {
        // On remplit le cookie par une valeur fausse pour ne pas être réutilisé
     //   setcookie("sid", "session ended", time()+3600);
     
        // Invalidation de l'objet $_SESSION
        session_unset(); <---- TU INVALIDE $_SESSION
     
        // Destruction de l'objet $_SESSION
        session_destroy();    <------ DESTRUCTION SESSION
     
        // On redirige l'utilisateur vers la page d'accueil
        header('HTTP/1.1 401 Unauthorized ou Authorization required');
    //    header('location:http://localhost/intranet/index.php');
      
    echo '<script language="Javascript">
    <!--
    document.location.replace("http://localhost/intranet/index.php");
    // -->
    </script>';
     
     
      exit;
    }
    define ('SESSION_TIMEOUT', "120");
    if (isset($_SESSION['login']))
    {
        // On vérifie si le temps d'inactivité n'a pas été dépassé
        if(time()-$_SESSION['last_access'] > SESSION_TIMEOUT)
        {
      unset($_SESSION['id']);
      unset($_SESSION['type']);
      unset($_SESSION['name']);    <---- TU VIDE LES VARIABLES
      unset($_SESSION['team']);
      unset($_SESSION['username']);
      unset($_SESSION['mid']);
      unset($_SESSION['email']);
      unset($_SESSION['soldeconge']);
      unset($_SESSION['team']);
      logout();
        }
        else
        {
            // On stocke l'heure de dernière connexion
            // time s'exprime en secondes à partir du 01/01/70 à 00:00:00
            $_SESSION['last_access'] = time();
        }
    }
    ?>

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    merci pour vos reponses,

    au moins je deduit que le code est correcte,vu que suis debutant en php.

    pour te repondre backdown, je dis oui je le savait mais quand ont a des problemes ont fait tt pour les resoudre n'est ce pas?

    pour les cookies je ne vois pas trop comment faire, est ceq que je dois configurer le browser pour qu'il refuse les cookies ou koi?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 86
    Par défaut
    pour les cookies, il faut qu'il les accepte.
    mais je ne sais pas si quelqu'un peut nous dire si ca joue sur les sessions ou pas.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 183
    Par défaut
    bonjour,
    cété une erreur dans le code.

    merci à vous tous.

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

Discussions similaires

  1. [Session]Problème de fermeture de session
    Par july dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 16/06/2005, 12h25
  2. Fermeture de session WndProc()
    Par jamesb dans le forum C++Builder
    Réponses: 15
    Dernier message: 10/02/2005, 17h35
  3. Interception de la fermeture de session
    Par xoris dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/12/2004, 19h50
  4. [JSP] session et fermeture de session
    Par monoeilouais dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/04/2004, 16h02
  5. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52

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