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 :

différencier l'ouverture de la même application 2 fois


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut différencier l'ouverture de la même application 2 fois
    bonjour,

    je suis confronté à un problème.

    je mets à disposition des applications a , b, c

    je souhaite que l’utilisateur puisse accéder 2 fois à l’application "a", pour des utilisation différentes.

    exemple imaginons que a1 soit une application pour gérer des tomates à lyon et a2 pour gérer les tomates à paris

    je crée une variable de session a1 et une variable de session a2 où je stocke un tableau avec des variables différentes.
    l’utilisateur ouvre les deux applications a1 et a2 en même temps

    comment vais je pouvoir différencier ces noms de session différentes sur les pages consultés, car je ne souhaite pas retrouvé les informations a2 sur a1

    j’avais pensé à des $get sur url sur chaque page, mais question sécurité, je préfère éviter même avec du rewriting

    je ne sais pas comment faire , avez vous une idée?

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Bonjour

    Pas sûr d'avoir compris mais je présume que ton utilisateur se connecte deux fois, une fois comme "vendeur_lyon" et l'autre comme "vendeur_paris"; est-ce correct ? Si oui, nous avons deux utilisateurs différents et on peut donc imaginer assigner un token à chaque utilisateur; ce qui permettra de sauver les données en mémoire en utilisant ce token et de ne rien mélanger.

    Note: si je fais le parallèle avec quelque chose que je pratique, c'est d'avoir deux logins pour un même soft. Au boulot, nous utilisons GitLab pour stocker nos sources. Je suis un utilisateur mais aussi un admin. Du coup, j'ai un login "christophe" et un autre login "admin_christophe". C'est terriblement mieux sur le plan de la sécurité puisque 99% du temps je bosse avec mon login perso et je ne risque pas de tout casser / qu'on pirate mon compte et qu'on casse tout.

    Deux comptes pour la même application.

    Est-ce que cela peut être appliqué à ton cas de figures ? On pourrait alors aller terriblement plus loin : l'email de ton utilisateur "vendeur_lyon" pourrait alors être différente de l'autre utilisateur, son avatar, des infos comme le total max. qu'il peut acheter/vendre par jour selon le lieu, etc.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci pour votre réponse

    non c'est un peu plus complexe que cela

    j'ai un front où les personne se connecte, on va l’appeler index donc 1 connexion

    puis je mets à leur disposition des applications a, b ou c
    je permet à l'utilisateur index, d'utiliser l'application a, b, c
    et l'utilisateur peut créer deux fois une application a,
    a1 pour gérer des carottes et a2 pour gérer des navets

    si l'utilisateur, ouvre les applications a1 et a2, je vais être confronté à un problème de gestion des $_SESSION même si je crée deux variable $_SESSION['a1'] et $_SESSION['a2'] ou je mettrais un tableau pour gérer les données et différencier les applis.

    comment les différencier? lorsque l'utilisateur les utilise allant sur les même pages mais avec des données différentes c'est à dire, je ne veux pas que les données a1 soit dans a2 et vice versa


    index ---> a1
    ---> a2
    --->c
    --->b

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    je ne suis pas sur que ça soit une bonne idée d'appeler ça une "application" parce que d'habitude ce sont les développeurs qui créent des applications. et ensuite les utilisateurs ne font que utiliser ces applications.

    si par exemple l'utilisateur peut gérer une liste de champs, il va créer un champ qui aura l'identifiant 4 et qui sera un champ de carottes. et ensuite il va créer un nouveau champ de betteraves avec l'identifiant 5.
    ces identifiants des champs vont ensuite se retrouver dans les url. et quand il y a un formulaire de modification d'un champ, cet identifiant est envoyé avec les données.
    donc au final le tableau de session contient juste les informations de l'utilisateur connecté et pas les identifiants des champs.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci de votre réponse,


    Bon je vais être plus explicite les allégories légumineuse ont leurs limite.

    j'ai un site avec un front, dans ce site il y a trois applications, donc un utilisateur qui se connecte a accés a ces trois applications

    j'ai une application "a" qui permet de gérer du materiel
    une application "b" qui permet de gérer des parcs informatique
    une application "c" qui permet de gérer des projets

    un même compte peut créer 2 environnements "a"
    a1 pour gerer son outillage sur lyon
    a2 pour gerer son stock de peluche sur paris

    donc il pourra ouvrir a1 et a2 au même moment.
    mais a1 et a2 sont deux environnements différents avec des intervenants différents.
    c'est à dire que les utilisateurs de a1, ne seront pas les même que a2 (à part la personnes qui l'a créé et qui gère l'outillage et les peluches) d'où la nécessite de créer deux accès différents pour l'application "a".

    .

  6. #6
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Je préférais les légumes 😊 (blague idiote mais juste pour souligner que ton nouvel exemple ne m'apporte aucune information additionnelle).

    Si je suis l'utilisateur "index" comme tu l'écrivais plus haut et que je lance l'application de gestion de matériel, que vais-je voir ? Comment sais-tu que je vais gérer truc ou machin (les peluches)? Qu'est-ce qui te dit que je suis le petit a1 ou petit a2 dans ton exemple ? Ça, ça me manque...

    Est-ce qu'il me faut opérer un choix à l'ouverture de l'application de gestion ? (voulez-vous gérer truc ou bidule ?). Si oui alors tu as donc une clef basée sur le ID de l'utilisateur et le ID du matériel géré...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci de votre réponse


    "Si je suis l'utilisateur "index" comme tu l'écrivais plus haut et que je lance l'application de gestion de matériel, que vais-je voir ? Comment sais-tu que je vais gérer truc ou machin (les peluches)? Qu'est-ce qui te dit que je suis le petit a1 ou petit a2 dans ton exemple ? Ça, ça me manque..."

    " Qu'est-ce qui te dit que je suis le petit a1 ou petit a2 dans ton exemple ?"
    c'est bien là le problème...

    c'est à dire que si j'ouvre a1, puis a2 et que je reviens sur a1 si je change de page je vais avoir les données de a2 , au mieux ou des erreurs
    je vais créer une id-application qui différencie les produits ou environnement a1 ou a2 puis id_application est stocké dans $session['a1']
    donc comment savoir si on tape dans $_session['a1'] ou $_session['a2'] de ,page en pages

    donc la question est comment les différencier pour que l'environnement de a1 reste a1

    j'avais penser de faire des $_get pour avoir acces continuellement au données a1 mais y a t il une autre solution ?

  8. #8
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Je pensais l'avoir mis en évidence... Si je lance a1, tu vas me demander ce que je veux gérer non ? Peluche ou ordinateur ou.. Et donc tu sauras que a1 correspond à tel matériel, non ? Et là tu garderais un identifiant type materiel_id en mémoire...

    Il suffirait de mettre cette valeur, sous forme cryptée, dans une zone input de type hidden.

    Chaque interaction avec le serveur serait, par exemple, un POST et donc tu aurais le user_id (ou le token de ta session, mieux) et le materiel_id...

    Juste une piste...

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Juillet 2011
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ah ok, je n'ais pas pensé à un post hidé et crypté, je ne l'ais jamais fait d'où la reflexion sur le get et effectivement cela doit marcher

    je vais essayer

    cette réponse m'ouvre d'autres perspectives, sur d'autres problèmatiques

    merci beaucoup, tu es très bon...

    je m'ouvre une guiness à ton honneur!

  10. #10
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    Citation Envoyé par skoolfer Voir le message
    j'ai une application "a" qui permet de gérer du materiel
    une application "b" qui permet de gérer des parcs informatique
    une application "c" qui permet de gérer des projets
    si vous faites une distinction entre les 3 applications, c'est que cette distinction existe déjà, non ? les 3 applications sont dans des sous-répertoires différents du même site ?

    la session permet juste de savoir quel est l'utilisateur connecté. si l'utilisateur se connecte une seule fois pour avoir accès aux 3 zones, ce sont les urls qui vont définir sur quelle page est l'utilisateur.

    Citation Envoyé par skoolfer Voir le message
    un même compte peut créer 2 environnements "a"
    a1 pour gerer son outillage sur lyon
    a2 pour gerer son stock de peluche sur paris

    donc il pourra ouvrir a1 et a2 au même moment.
    là par exemple, l'utilisateur aura une page qui affiche la liste de ces environnements avec 2 liens "environnement.php?id=1" pour les lyon et "environnement.php?id=2" pour paris.

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 255
    Points : 8 548
    Points
    8 548
    Billets dans le blog
    17
    Par défaut
    Perso je n'ai pas bien compris où est le problème, et s'il y en a vraiment un.

    $_SESSION est indépendant d'un onglet à l'autre du navigateur. Il n'y a pas de confusion possible à ce niveau.

    Il suffit juste qu'au niveau app tu saches où tu es.

    Je rejoins Mathieu, ça peut être un param dans l'URL (je ferais ainsi). Il faudra simplement s'assurer que l'utilisateur a bien le droit d'accéder à l'environnement et le tour est joué.

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

Discussions similaires

  1. Ouverture d'une même application à partir d'un thread
    Par Kroui dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 08/08/2011, 16h40
  2. Ouvrir la même application 2 fois en même temps
    Par vitch8 dans le forum Delphi
    Réponses: 4
    Dernier message: 02/03/2007, 10h33
  3. Différencier les instances d'une même application
    Par Laurent.B dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 4
    Dernier message: 19/09/2006, 16h00
  4. Ouverture de la même JFrame plusieurs fois
    Par louby dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 08/06/2006, 17h23

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