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 :

comment partager des données entre les sessions


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 102
    Points
    102
    Par défaut comment partager des données entre les sessions
    bonjour,
    j'ai quelque données et je souhaite les faire partager entre des sessions et tout en arrivant à distinger mes sessions à partir d'autre sessions.
    est ce possible de faire pareil ? si oui comment devrai-je procéder ?
    merci d'avance

  2. #2
    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
    Citation Envoyé par jesslegende Voir le message
    bonjour,
    j'ai quelque données et je souhaite les faire partager entre des sessions et tout en arrivant à distinger mes sessions à partir d'autre sessions.
    Bonjour

    Qui dit "partage" dit inévitablement "variables de sessions communes".

    A préciser aussi que tu ne peux pas distinguer une session par rapport à une autre ( Mauvaise piste ), mais il y a bien plus simple si tu sais maîtriser les sessions PHP.
    En revanche, tu peux distinguer des variables de sessions personnelles, et celles qui sont communes à tous.
    En pratique, c'est trés simple quand on s'y interresse.

    Je m'explique :
    Lorsque tu inities ta session de base et par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_SESSION['truc'] = $truc; // Variable privée
    $_SESSION['machin'] = $machin; // Variable privée
    $_SESSION['bidule'] = $bidule; // Variable commune
    $_SESSION['chose'] = $chose; // Variable commune
    Dans les commentaires, tu observeras que certaines variables sont propres à l'utilisateur (privée), et que d'autres sont communes à l'ensemble des utilisateurs (commune).

    Ce qui sous-entend que les variables de sessions communes sont donc exploitables par tous, ou visibles par tous, selon.
    A partir de là, tu fais ce que tu veux.
    Le tout est bien entendu conditionné par la façon dont ta base de données est élaborée.
    C'est par là qu'il faut commencer.
    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.

  3. #3
    Membre régulier Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    bonjour, je te remercie pour ton aide.

    est que tu peux m'expliquer la difference entre:
    Citation Envoyé par alain31tl Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['truc'] = $truc; // Variable privée
    $_SESSION['machin'] = $machin; // Variable privée
    et:
    Citation Envoyé par alain31tl Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['bidule'] = $bidule; // Variable commune
    $_SESSION['chose'] = $chose; // Variable commune
    parce que il me parait que c'est la même ecriture !

    en fait ce que je souhaite faire et créer un variable partager entre toute les sessions afin de pouvoir compter le totale des sessions ouvertes c'est possible avec les fichiers global.asax en asp.net en declarant une variable de visibilité public shared et je suis sur qu'on peut faire pareil avec le php puisque tout est sur le serveur.

  4. #4
    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
    C'est vrai.
    Mais c'est ta base de données qui fait la différence.

    Dans celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['truc'] = $truc; // Variable privée
    $_SESSION['machin'] = $machin; // Variable privée
    Soit : Elles sont uniques et aucunes ne se ressemblent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['bidule'] = $bidule; // Variable commune
    $_SESSION['chose'] = $chose; // Variable commune
    Soit : Ce sont strictement les mêmes, voire via des identifiants identiques (this_id).

    Ensuite, c'est une question de maniplulation de ces données (script php ou mysql).

    Remarque, une session s'ouvre sur le navigateur de l'utilisateur. Ce qui signifie que ce dernier ne peut absolumment pas savoir combien de sessions sont ouvertes chez d'autres.
    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.

  5. #5
    Membre régulier Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par alain31tl Voir le message
    Remarque, une session s'ouvre sur le navigateur de l'utilisateur. Ce qui signifie que ce dernier ne peut absolumment pas savoir combien de sessions sont ouvertes chez d'autres.
    cela signifie aussi que le serveur ne peut savoir combien de session sont ouverte sauf en cas d'interaction avec le client ?

    donc si je me trompe pas je dois prendre ces variables de session et les enregistrer soit sur des fichiers soit en db ?

  6. #6
    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
    Il semble évident qu'avant de transformer des variables, en variables de sessions, qu'elles doivent être connues.
    Par exemple :
    - Venant d'un formulaire
    - Venant d'une db.

    Pour ta première interrogation, il est tout à fait possible de savoir combien de sessions ont été ouvertes tel ou tel jour, si tant est qu'elles soient enregistrées en db au moment de l'identification.
    Mais celà ne va pas résoudre ton probléme de fond.

    En fait, j'essaye de t'amener sur un chemin théorique pour que tu puisses exploiter ce "partage".

    En concordance avec ce que je disais precedemment, la grosse différence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Je veux aller et voir... WHERE truc ='$truc'
    //Il n'y en a qu'un seul qui peut y aller.
    Je veux aller et voir... WHERE chose ='$chose'
    //Tous peuvent y aller.
    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.

  7. #7
    Membre régulier Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par alain31tl Voir le message
    En fait, j'essaye de t'amener sur un chemin théorique pour que tu puisses exploiter ce "partage".

    En concordance avec ce que je disais precedemment, la grosse différence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Je veux aller et voir... WHERE truc ='$truc'
    //Il n'y en a qu'un seul qui peut y aller.
    Je veux aller et voir... WHERE chose ='$chose'
    //Tous peuvent y aller.
    oui j'ai bien saisi ça depuis ta premiére intervention mais vu que ça concerne plus coté manipulation de base de données ou de données elle même c'était un peu plus avancée par rapport à mon problème ou j'était bloqué dans les possibilitées pour faire ce partage et comment le faire. mais là ça va mieux

    je te remercie beaucoup pour ton aide

  8. #8
    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
    Juste un aparté. ( Ce n'est pas une critique )

    Je vois que tu es développeur informatique et que tu veux, depuis un projet ou une idée, développer en aval.
    Ce n'est pas ma philosophie et elle peut être discutable.

    Mais personnellement, je préfére de loin développer en amont, et suivant ce schéma :

    1 - Quelle destination finale ? // Je veux que....
    2 - Quels besoins pour aboutir à 1 ?
    3 - Quels moyens pour aboutir à 2 ? ( scripts, db, sessions, identification, etc...)

    D'ordinaire, je fais celà sur un simple bout de papier, un check-list en quelque sorte.
    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.

  9. #9
    Membre régulier Avatar de jesslegende
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 102
    Points
    102
    Par défaut
    je te remercie pour ce conseil les conseils sont les bienvenu biensur,
    mais en étant développeur je suis au courant qu'il faut procéder par ce bout de papier le problème réside dans les moyens necessaires, vu que je n'ai que moins d'un ans en php j'ai encore quelque problèmes pour m'en servir des moyens offerts par ce dernier.
    encore un merci pour le conseil c'est trés gentil

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    J'ajoute ma pierre à l'édifice.

    Comme son nom l'indique les variables de sessions sont faites pour les sessions (par utilisateur). Je te conseille plutôt de créer des variables d'application séparées des sessions qui seront vu par tous les utilisateurs.

    Ces variables peuvent être en base de données, dans un fichier ou en cache mémoire. PHP contrairement à d'autres langages n'en a pas, il faudra donc créer ta propre API ou en réutiliser une existante.

    Un exemple au pif:
    http://www.tek-tips.com/faqs.cfm?fid=1825

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

Discussions similaires

  1. [javaBean + JSP] comment partager un objet entre les page JSP
    Par subzero82 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/05/2006, 18h48
  2. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01
  3. Réponses: 3
    Dernier message: 20/01/2005, 19h19
  4. Comment récuperer des données entrées au clavier?
    Par Elisée A. dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 07h22

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