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 :

Session et deconnexion propre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut Session et deconnexion propre
    Bonjour à tous.

    J'ai crée un accueil (HOME/index.php) sur lequel le visiteur doit absolument se logger pour accéder à la suite du site (HOME/site1/index.php).
    J'ai donc interfacé tout ceci avec des sessions.
    La création des sessions et des variables se fait nickel
    Cependant, lors de la déconnexion, j'ai un souci :
    - L'utilisateur clique sur "Déconnexion" (script logout.php);
    - Lorsque je tape dans le navigateur juste après déconnexion l'URL HOME/site1/index.php, le navigateur reconnaît la session précédemment ouverte.

    Je souhaiterai completement détruire la session créée et ainsi obliger le visiteur à réentrer son login/mdp.

    Je ne vois pas comment faire ceci proprement
    Voici le code de logout.php
    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
     
    <?php
     // On appelle la session
     session_start();
     
     $_SESSION['login'] = "";
     $_SESSION['id_site'] = "";
     $_SESSION['id_user'] = "";
     $_SESSION['role'] = "";
     $_SESSION['timeout']="";
     
     // On écrase le tableau de session
     $_SESSION = array();
     
     if (isset($_COOKIE[session_name()])) 
     { 
      setcookie(session_name(), '', time()-42000, '/');
     }
     
     // suppression des variables de sessions
     session_unset(); 
     // On détruit la session
     session_destroy();
     
     header("Location: ../index.php?logout=ok");
     exit();
    ?>
    Je vous remercie pour votre aide

  2. #2
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    Essaye de détruire tes variables de sessions avec la fonction :

    session_unregister()

  3. #3
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    ca marche pas non plus !

    Je sais plus koi ajouter la maintenant !
    Ca viendrai pas d'un paramétrage de php.ini ?

  4. #4
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    c'est possible oui,

    peut tu afficher comment tu teste si la session est créer ?

    Et afficher aussi le contenu relatif aux sessions de ton php_ini, et surtout si ton session_autostart est a true .

  5. #5
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Voici le bout de code de vérification de 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
     
    session_cache_limiter('private'); /* Configure le limiteur de cache à 'private' */
    $cache_limiter = session_cache_limiter(); 
    session_cache_expire (1);  /* Configure le délai d'expiration à 30 minutes */
    $cache_expire = session_cache_expire();  
    session_start();  /* Démarre la session */
    // test si la session est toujours valide
    if((time() - $_SESSION['timeout']) > 60) // 1200 secondes = 20 min
    {
     session_destroy();
     header('Location: ../index.php?error=4'); 
        exit; 
    }
    // test si la session a été ouverte
    if(!session_is_registered('id_user')) 
    { 
       header('Location: ../index.php?error=3'); 
       exit; 
    }
    Quant au php.ini, c'est la configuration de base avec EasyPHP

    Merci pour ton aide

  6. #6
    Membre expérimenté Avatar de juliens9
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 192
    Par défaut
    N'utilisant pas easyphp, je ne sait pas quelle est la configuration de bases.

    Sinon pour ta session essaye plutot de passer par un isset($_SESSION['id_user']), plus adapté a ton fichier logout.

    Regarde quand meme ton session_autostart de ton php, et met le a false ( je crois qu'il est a true par défaut sur pas mal de serveur)

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

Discussions similaires

  1. detruire session deconnexion
    Par debutantasp dans le forum ASP
    Réponses: 11
    Dernier message: 06/05/2008, 16h41
  2. executer un script juste avant la deconnexion d'une session
    Par medora dans le forum Administration système
    Réponses: 8
    Dernier message: 20/04/2007, 13h19
  3. Réponses: 40
    Dernier message: 13/05/2006, 00h04
  4. [Sécurité] Déconnexion de session
    Par zoreil dans le forum Langage
    Réponses: 10
    Dernier message: 10/05/2006, 08h59
  5. Réponses: 3
    Dernier message: 01/05/2006, 14h09

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