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 :

[Cookies] les sessions et les cookies


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut [Cookies] les sessions et les cookies
    j'ai crée un blog et il faut s'identifier par un mail et mot de passe
    est ce que vous pouvez m'aider à faire une requette pour:
    - si un utilisateur est déja identifié on doit pas lui demander de s'identifier encore une fois.
    -si non il dois se connecter par son mail es mot de passe
    j'ai compris qu'il faut utiliser if statement et isset (if ( isset( $_SESSION['email'] ) )
    ) mais je ne vois pas encore comment faire le truc, est ce que quelqu'un peut m'aider à m'expliquer par un pseudo code ou juste ne français ou par un code pourquoi pas j'ai un autre probléme, j'ai mis un lien pour que un utilisateur se deconnecte n'importe quel moment, mais il se trouve que le variable $_session garde en mémoir mes identifiants je sais pas pourquoi.

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    Bonsoir,

    Essaie d'aérer un peu tes phrases

    Essayons de voir les différents cas :
    1) l'utilisateur n'est pas connecté
    2) il est connecté et sur le site
    3) il est parti du site ou inactif pendant une longue période

    Il faut effectivement utiliser les sessions, en premier n'oublie pas de faire un session_start(); après chaque début de fichier

    Ensuite il va falloir que tu voies ce que tu retiens dans tes sessions, son id dans la base, un nom d'utilisateur ? Par exemple il est inutile et même dangereux de retenir le mot de passe dans la session.

    Je te conseille de ne retenir que l'id de la session dans $_SESSION['id'], et d'aller vérifier à chaque fois dans la base si l'id existe et si les ip correspondent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table session
    {
     id_session int auto_increment,
     ip varchar(15) not null,
     temps_inactivite int,
     primary key id_session
    }
    1) un isset($_SESSION) te retournera 0, donc tu affiches ton formulaire

    2) pour chaque page tu vas vérifier si la session en cours est valide, avec un ordre du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'select temps_inactivite from sessions where id_session='.securise_id_session($idSession).' and ip="'.$_SERVER['REMOTE_ADDR'].'"';
    3) si ce que la requête te renvoit est supérieur au temps d'inactivité que tu as défini, tu détruis la session.

    Quelques pistes de réflexion

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 67
    Points
    67
    Par défaut
    MERCI POUR TA REPONSE

    mais enfait ce que je recherche c'est le pseudo_code php et pas des requettes sql
    dans mon blog je retiens le mail si un mail est déja connecté je passe si non je lui demande de se connecter

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 55
    Points : 54
    Points
    54
    Par défaut
    Mais en ce qui nous concerne, la gestion des sessions va se faire correctement si tu prévois la bonne table sql...

    Tu peux avoir un code du style :

    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
    <?php
     
    if (isset($_SESSION))
    {
     if (isset($_SESSION['id']))
     {
      // connexion à la base
      // envoi de l'ordre 
      $sql=mysql_query('select temps_inactivite from sessions where id_session='.((int) $_SESSION['id']).' and ip="'.$_SERVER['REMOTE_ADDR'].'"');
     
      if (mysql_num_rows($sql))
      {
        $temps_inactivite=mysql_fetch_row($sql);
        if ($temps_inactivite > $MAX_INACTIVITE)
           afficher_form_connexion('Session expirée...');
      }
      else
      {
         detruire_session_existante();
         afficher_form_connexion();
     }
    }
    else
     afficher_form_connexion();
     
    ?>

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/11/2011, 08h06
  2. [Cookies] Les Sessions et les cookies
    Par naima2005 dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2006, 12h06
  3. [Cookies] Comment faire durer les sessions
    Par Rodolphe_1940 dans le forum Langage
    Réponses: 1
    Dernier message: 08/10/2006, 15h37
  4. [Cookies] non destruction d'un cookie de session
    Par psychoBob dans le forum Langage
    Réponses: 13
    Dernier message: 16/06/2006, 13h20

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