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 :

Gestion de sessions


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut Gestion de sessions
    Bonjour a tous.

    Comment commencer un post sans remercier les membres du forum... Bref merci a tous votre investissement. Je crois que grace a vous j'ai un taux de resolution de 95% de mes problemes.

    En voila un nouveau, et j'espere ne pas me faire tapper sur les doigts si il a deja ete resolu ou declarer insolvable par le passe.

    J'ai pris en charge la maintenance et l'amelioration d'une appli intranet, html, PHP4, IIS6
    il s'agit d'une appli utilisee par un callcenter (certains se souviennent peut etre de mes precedents topics).
    Un operateur du callcenter peut etre amene a traiter simultanement un email et un appel, ou deux email ou ...

    S'il utilise ie6, il suffit d'ouvrir deux fenetres, de se logguer et les sessions sont independantes. Par contre s'il a la mauvaise idee de faire un Ctrl+N ou File->New, la nouvelle fenetre semble liee a la precedente.

    S'il utilise Firefox (l'admin reseau et moi meme souhaiterions nous debarasser d'ie6, j'imagine que vous approuverez) alors il ne peut avoir qu'une et unique fenetre, et bien sur un seul onglet.

    De meme pour ie7 (nous ne pouvons donc pas upgrader) et pour opera 9.

    Je souhaiterai donc savoir s'il existe d'eventuelles pistes ou tweaks a apporter me permettant de resoudre ce probleme "majeur". Est il possible d'"isoler les sessions", ou sommes nous condamnes a utiliser ie6 pour toujours?

    (je suis bien entendu en train de bosser sur une migration vers PHP5, mais je doute qu'elle resolve mon probleme)

    Merci d'avance pour votre patiente et vos eventuels conseils.




    Edit : Quelques precisions supplementaire.

    Quel est reellement le probleme.

    Si l'operateur utilise firefox et ouvre 2 onglets sur l'appli, s'il travaille simultanement sur 2 logs, alors seulement l'un de ces 2 logs sera enregistre.
    Un peu comme si je postais ici et sur un autre topic en meme temps, puis en validant seul l'un des deux message sera enregistre...

    Je souhaiterai donc permettre a l'operateur de travailler avec autant d'onglet qu'il le souhaite, et fermer des logs sans risquer de perdre quoi que ce soit.

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 354
    Points : 15 700
    Points
    15 700
    Par défaut
    la session est unique parmi tous les onglets donc un solution serait de modifier l'application pour permettre l'accès à plusieurs dossiers avec la même connexion

  3. #3
    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 mathieu Voir le message
    .......une solution serait de modifier l'application pour permettre l'accès à plusieurs dossiers avec la même connexion
    Bonjour

    Je suis d'accord avec mathieu et en effet, je parle en connaissance de cause sur une application gérant des droits d'utilisateurs complexes.

    ==> En clair, il convient de se logguer vers différents "comptes" via une même session, et surtout sans être contraint d'ouvrir une autre fenêtre de log.

    Celà peut être simple...ou complexe suivant l'avancement du projet, voire du nombre de scripts à modifier.

    Idéalement et je le conseille, c'est de créer au préalable une table qui enregistre les sessions.
    Et on enregiste ce que l'on veut dans une session.

    Puisqu'il est possible d'enregistrer ce que l'on veut, on peut relancer n'importe quelle requête avec les paramétres/champs enregistrés dans l'id de session..

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Merci pour vos reponses.

    J'aimerai si possible approfondir, car j'avoues que ca reste assez sombre.

    Le server IIS 6 est configure de la facon suivante :
    authentication methode :
    "Enable anonymous access"
    username : "leusername"
    Password : "lepassword"

    (d'un point de vu technique et securitaire je trouve ca assez mauvais, car tout le monde se connecte au server avec le meme username)

    Vient ensuite l'appli :
    L> Login.php (l'user se log)
    L> main.php (si l'user n'est pas logge, redirect sur login.php, s'il l'est, reste sur la page
    L> Sur cette page, une liste de drapeaux, lors du click sur un drapeau :
    L> call.php

    Si j'ai donc 2 onglets sur la page call.php, bien que se soit suite au clic sur deux drapeaux differents, la fermeture par validation de l'une de ses pages ecrit bien dans la BDD, puis la fermeture de la seconde ne fait rien.

    Un petit print_r($_SESSION) dans mon call.php donne cela :

    Array (
    [user] => user Object
    (
    [username] => operateur1
    [pw] =>
    [role] => 515d095b56
    ...
    )
    [client] => Array
    (
    [0] => client1
    )
    [cltab] => 0
    [CurrentClient] => client1
    [call] => Array
    (
    [client_name] => none
    [ctype] => _
    [time_start] => 1220858246
    [operator] => operateur1
    [country] => country1
    <ici on trouve egalement une entree pour chaque champ du formulaire, certains vides, d'autres pre-evalues>
    )
    [CurrentCountry] => country1
    )
    Ce qui voudrait donc dire que lorsque j'ouvre un second call.php, cela ecrase les variable de sessions de la page ouverte precedemment...


    ==> En clair, il convient de se logguer vers différents "comptes" via une même session, et surtout sans être contraint d'ouvrir une autre fenêtre de log.
    Je suis tres interesse par cette idee.
    Dois je le comprendre de la maniere suivante :

    J'attribue 3 sessions a un utilisateurs : SESSION_A, SESSION_B, SESSION_C
    Je cree dans ma BDD une table session avec au minimum les champs suivants:

    Username / SESSION_number / Date
    user1 veut utiliser l'appli :
    L> lecture de la BDD dans une nouvelle table SESSION a la recherche d'une entree pour l'user1 aujourd'hui
    L> Si pas d'entree, user redirige vers login.php et il se loggue normalement, et je cree l'entree suivante :
    user1 / SESSION_A/ Today
    L>Sinon, il y a deja une entree, donc l'user est deja loggue
    L> Si on a pas attend la limite, je cree silentieusement une nouvelle entree pour cet user :

    user1 / SESSION_B/ Today
    L>Sinon Message d'erreur


    Au moment de l'ouverture de call.php j'ecris mes variables de session dans le tableau correspondant en me basant sur "SESSION_A, B ou C" ce qui me permet de ne rien ecraser ...


    bon si quelqu'un a pu suivre jusqu'ici ... felicitation. je me perds moi meme.

    J'ai l'impression de dire n'importe quoi ou bien d'etre en train de reinventer la roue.

    N'hesitez pas a me tapper dessus si je m'egare.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Bon apres plus de temps passer a etudier le probleme et a rechercher des solution, je me rends compte de la stupidite de mon precedent post.

    C'est surement une des raison pour lesquelles je n'ai pas eut plus de reponses.

    Toujours est il que je pense avoir mis la main sur la solution a mon probleme, c'est a dire un moyen d'utiliser plusieurs onglets avec une session pour chacun d'eux.

    Il me reste a integrer tout ca dans mon fouilli de pages, mais je ne desespere pas.

    Pour ceux qui sont interesses, et en esperant ne pas violer la charte (cela se trouve dans un autre forum), voici un lien interessant :
    http://bytes.com/forum/thread7630.html

    Rendez vous en bas de page.

    Bon je vais clore ce sujet, en esperant m'en sortir. Merci pour vos propositions en tous cas

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

Discussions similaires

  1. [Cookies] Gestion de sessions
    Par sylk974 dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 14h50
  2. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25
  3. [Struts] Gestion de session
    Par Nuncyco dans le forum Struts 1
    Réponses: 3
    Dernier message: 24/06/2004, 11h11
  4. [ STRUTS ] [ SESSION ] Pb gestion de sessions
    Par LoulouFifi dans le forum Struts 1
    Réponses: 4
    Dernier message: 30/03/2004, 16h38
  5. [JSP] Gestion de sessions
    Par orisis dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2004, 15h36

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