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 :

Utilisation de plusieurs sessions ?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut Utilisation de plusieurs sessions ?
    Bonjour,

    Pouvez-vous me donner des exemples ou plutôt des mises en situation d'utilisation de plusieurs sessions différentes au sein d'une même page voir application en PHP ?

    Quel peut en être l'intérêt ?
    Dans quel cas peut-on se tourner vers une telle solution ?

    Je ne suis encore jamais tombé sur ce besoin et j'ai du mal à le concevoir.

    Merci,
    Dorian

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Qu'entend-tu par session multiple ?

    Par définition (et surtout pour des mesures de sécurité) un navigateur ne peut se connecter qu'à une session utilisateur à la fois pour un même nom de domaine.

    Fais-tu référence à un autre procédé : cross domain cookies ?

    Ou, si tu cherches à stocker plusieurs informations en session, il faut savoir que PHP expose une variable globale $_SESSION qui est un tableau. Dans ce tableau tu peux mettre tout simplement ce que tu veux.

    Exemple simple de stockage de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Haut de tout le script
    session_start();
    $session_exists = isset($_SESSION['my_session']);
    $_SESSION['my_session'] = array('id_user' => -1, 'user_object' => serialize(new stdClass));
    $_SESSION['my_session']['id_user'] = 0;
    $user = $_SESSION['my_session']['user_object'];
     
    var_dump(array($user->name, $session_exists));
    À bientôt

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    J'entends plusieurs session_name().

    Comme expliqué ici : http://php.developpez.com/cours/sess...e=page_4#LIV-A

    C'est justement pour toutes les raisons que tu expliques que je ne vois pas l'intérêt d'avoir 2 sessions nommées différemment et cherche à savoir s'il existe des situations dans lesquelles cela à intérêt.

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Ca peut servir, imagines que tu as fait une application dans laquelle peut venir se greffer des modules. Ca te permet de faire en sorte que les modules ne puisse pas modifier les informations de session utiles à ton application (puisqu'en ouvrir une nécessite la fermeture de l'autre).

  5. #5
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Bonsoir

    En régle absolue, on ne peut générer qu'une seule session à un moment "X" ** et sur une même "machine" comme le souligne ThomasR , et cette session a pour destination de pouvoir disposer et d'exploiter certaines variables de session associées à cette "X" session.

    ** Ce moment "X" est plus souvent et en général au moment de l'identification.

    On ne peut pas créer plusieurs sessions depuis une même machine et vers un même domaine.
    Mais on peut créer d'autres variables de sessions en cours d'éxécution d'un script.

    Le cas de figure que tu évoques avec l'utilisation de session_write_close() permet d'écraser simplement une/des variables de sessions existantes par de nouvelles sans quitter le navigateur.

    Trés pratique et généralement utilisé pour des applications collaboratives

    Et non pas comme tu l'entends :
    plusieurs session_name().

    D'ailleurs, fais un test avec php et demande lui de t'afficher plusieurs variables $_SESSION['name']
    Une variable de session est unique au coeur d'un script, tant qu'elle n'est pas intentionnellement modifiée.

    ==> Une session est toujours unique et restera unique... mais pas ses variables de sessions ( au demeurant illimitées en nombre), et qui lui sont associées, et qui sont susceptibles d'être modifiées (ou écrasées) .... à souhait.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Mmmm alain31tl

    qu'en est-t'il de ce code alors ??


    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
     
    // Préparation des deux sessions sur le même script.
    ob_start();
    session_name('test1');
    session_start();
    $_SESSION['ecrase_moi_si_tu_peux'] = 'bou !';
    echo "J'ai placé", $_SESSION['ecrase_moi_si_tu_peux'],'<br/>Session id : ',$id1 = session_id(),'<br/>Session name : ',session_name(),'<br/>';
    session_write_close();
     
    session_name('test2');
    session_start();
    session_regenerate_id();
    $_SESSION['ecrase_moi_si_tu_peux'] = 'bhaa !';
    echo "J'ai placé", $_SESSION['ecrase_moi_si_tu_peux'],'<br/>Session id : ',$id2 = session_id(),'<br/>Session name : ',session_name(),'<br/>';
    session_write_close();
     
    // Affichage des deux sessions sur le même script.
     
    session_id($id1);
    session_start();
    var_dump($_SESSION);
    session_write_close();
     
    session_id($id2);
    session_start();
    var_dump($_SESSION);
    session_write_close();
     
    echo ob_get_clean();
    J'ai eu un peu de mal à le faire marcher...
    Et je comprend encore pas tout très bien.

    Entre autre, pourquoi il faut passer par session_id($id1) pour récupérer la première session, pourquoi session_name('test1') ne marche pas dans ce cas... ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/01/2008, 16h46
  2. Application utilisable avec plusieurs SGBD - ADO ou DBX ?
    Par RamDevTeam dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 08h25
  3. [STRUTS] utilisation de plusieurs tags <html:subm
    Par Super Castor dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/06/2004, 11h42
  4. [C#] Utilisation de la session
    Par royrremi dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/06/2004, 16h24
  5. [struts] utilisation de plusieurs fichiers de config
    Par Boosters dans le forum Struts 1
    Réponses: 4
    Dernier message: 25/03/2004, 10h04

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