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

Coldfusion Discussion :

perte de session


Sujet :

Coldfusion

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut perte de session
    Bonjour,
    Voici mon problème que personne n'a encore pu trouver une solution:

    J'utilise des variables de session qui tiennent très bien avec le 90% des utilisateurs. Certains utilisateurs, avec la même configuration des paramètres internet explorer, perdent les sessions et la seule possibilité est d'aller modifier la config d'explorer dans outils-options internet-confidentialité-avancé et la de cocher "ignorer la gestion automatique des cookies" et aussi la case "Toujours autoriser les cookies de cette session".
    En relançant le navigateur, les sessions tiennent.

    Mais cela n'explique pas pourquoi le 90% des navigateurs n'as pas ces cases cochées et ça fonctionne.

    Voici ma config dans Applications.cfm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <CFAPPLICATION name="controlefrancophone" 
    sessionmanagement="Yes" 
    clientmanagement="Yes" 
    sessiontimeout = "#CreateTimeSpan(0, 0, 30, 0)#" 
    setclientcookies="YES"> 
    
    
    <cflock scope="SESSION" type="EXCLUSIVE" timeout="30"> 
    <CFSET session.choixutilisateur = 0> 
    <cflock>
    et c'est cette variable qui ne tient pas sur certains postes.

    Quelqu'un peut-il m'aider??

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Simple précaution, est-ce que tu as d'autres endroit dans ton site où tu définis un cfapplication et surtout avec un autre nom ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut oui
    Citation Envoyé par djtadpole Voir le message
    Simple précaution, est-ce que tu as d'autres endroit dans ton site où tu définis un cfapplication et surtout avec un autre nom ?
    oui il y en a un à la racine avec un autre name de cfappication et un autre dans un autre répertoire aussi avec un nom de cfapplication différent.

    pour ce test je reste dans mon repertoire avec un Application.cfm propre pour les pages de ce répertoire.

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    Est-ce une bonne pratique d'avoir plusieurs cfapplication pour une même application?

    Je ne le pense pas surtout si chaque cfapplication génère son propre identificateur de session.

    En général, un cookie est envoyé par domaine. Il est possible, à tester, qu'une cfapplication "écrase" le cookie de l'autre.

    Voici un scénario à vérifier:

    Navigateur ============> CFAppl1
    Navigateur <== Cookie1 === CFAppl1
    Navigateur === Cookie1 ==> CFAppl2 (ne reconnait pas l'ID, génère un nouveau)
    Navigateur <== Cookie2 === CFAppl2
    Navigateur === Cookie2 ==> CFAppl1 (on a perdu la session Cookie1)
    Bien le bonjour chez vous
    Jowo

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre info.

    Peut-etre bien que cela soit le probleme vu le schema des direction que vous avez fait, mais je ne suis pas absolument convaincu.
    Je viens de regrouper tout dans le meme fichier Application.cfm.
    J'attends de voir les retours car je ne peux pas tester étant donné que seulement certains postes seulement perdaient la session et je ne sais pas lesquels.

    Je vous tiens au courant
    Encore merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Petite explication sur le cfapplication :
    le cfapplication est, comme son nom l'indique, les informations sur l'application.

    Si 2 cfapplication ne porte pas le même nom, le système le voit comme 2 applications différentes.
    Et donc 2 systemes de gestion de cache/session/... différentes.
    (@niabal : je pense que ton probleme vient de là).

    Pour ce qui est d'avoir plusieurs fichiers application.cfm (avec le même nom) dans des répertoires différents peut s'expliquer.
    Exemple concret :
    A la racine, votre fichier charge plein de données utiles pour le site.
    Dans un autre répertoire, votre fichier charge moins de données (pour de l'ajax par exemple).
    Cela permet une meilleure réactivité.

    En espérant avoir aider.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    ok merci pour cette précision.
    je pensais qu'ajouter un Application.cfm dans un sous répertoire avec un nom de cfappication différent écrasait l'autre, celui qui est à la racine.

    Là si je comprends bien, à la racine, j'ai mon Application.cfm avec la création du cfapplication et si je veux rajouter des données de base dans un sous-répertoire je peux rajouter un Application.cfm mais sans recréer un cfapplication différent mais en ajoutant mes variables de session.
    est-ce juste??

    ça me parait logique c'est vrai.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Donc si j'ai un sous site dans un répertoire qui se présente complètement différent au site principal, je ne peux pas créer un cffapplication différent pour séparer complètement le site de celui qui est à la racine??

    exemple:
    j'ai un site qui s'appelle bonjour.com avec des variable de session pour le login d'un compte utilisateur.
    et j'ai un autre site (sous-site à bonjour.com) qui s'appelle salut.com et qui est redirigé directement sur le répertoire du sous site. J'ai aussi des variables de session pour le login de l'utilisateur. Je devrais alors utiliser le meme nom que le premier cfapplication mais créer des variables de session avec des noms différents??

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Après vérification cela ne fonctionne toujours pas.
    Je n'ai plus qu'un cfappication pour tout le site et un des postes PC testé ne garde pas ces sessions, snif.

    J'étais sûr que c'était une bonne solution mais on vient de me prouver le contraire. Je ne dois pas être tout seul à avoir le même problème tout de même...

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Y at-il moyen de faire affiche le nom de cfapplication qu'il prend en compte lors de l'affichage de la page pour comparer si ce nom correspond au nom donné dans Application.cfm??

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Pour le application.cfm :
    il faut 1 fichier par site.
    pour plus de détails, regarde la doc (elle est simple mais elle est bien).

    Pour les informations de l'application, tu as les variables d'application en dumpant application.
    <cfdump var="#application#">

    Pour les variables de session :
    peux-tu me faire parvenir par MP la définition de ton cfapplication
    et le manière dont tu définies tes variables de sessions ?

  12. #12
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par niabal Voir le message
    Y at-il moyen de faire affiche le nom de cfapplication qu'il prend en compte lors de l'affichage de la page pour comparer si ce nom correspond au nom donné dans Application.cfm??
    Il existe les variables réservées:
    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
    Server.ColdFusion.ProductName 
    Server.ColdFusion.ProductVersion 
    Server.ColdFusion.ProductLevel  
    Server.ColdFusion.SerialNumber  
    Server.ColdFusion.SupportedLocales 
    Server.ColdFusion.AppServer 
    Server.ColdFusion.Expiration 
    Server.ColdFusion.RootDir 
    Server.OS.Name  
    Server.OS.AdditionalInformation  
    Server.OS.Version  
    Server.OS.BuildNumber
    
    Application.ApplicationName 
    Session.CFID 
    Session.CFToken 
    Session.URLToken
    Pour que chacun puisse aider, il serait préférable que la publication du contenu de cfapplication soit publique.
    Bien le bonjour chez vous
    Jowo

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut J'ai nettoyer les logins et mdp
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <cfsilent>
    
    <CFAPPLICATION name="tobele"
      sessionmanagement="Yes"
      clientmanagement="Yes"
      sessiontimeout = "#CreateTimeSpan(0, 0, 30, 0)#"
      setclientcookies="YES">
    
    
    
    <cfif not isdefined('application.tobelDSN')>
           <cflock scope="APPLICATION" type="EXCLUSIVE" timeout="5">
                   <cfset application.tobelDSN = "XXX">
                   <cfset application.tobelUser = "XXX">
                   <cfset application.tobelPassword = "XXX">
           </cflock>
    </cfif>
    
    <cflock scope="APPLICATION" type="EXCLUSIVE" timeout="5">
           <cfset tobelDSN = application.tobelDSN>
           <cfset tobelUser = application.tobelUser>
           <cfset tobelPassword = application.tobelPassword>
    </cflock>
    
    
    <!--- variable formulaire --->
    <CFIF not isDefined('session.aeroport')>
       <cflock scope="SESSION" type="EXCLUSIVE" timeout="30">
    
         <CFSET session.choixutilisateur = 0>
         <CFSET session.aeroport = "">
         <CFSET session.pays = "">
         <CFSET session.contact = "">
         <CFSET session.fonction = "">
         <CFSET session.email = "">
         <CFSET session.telephone = "">
         <CFSET session.nbrepistes = 1>
         <CFSET session.qfu1A = "">
         <CFSET session.qfu1B = "">
         <CFSET session.longueurpiste1 = "">
         <CFSET session.hectare = "">
         <CFSET session.mouvement = "">
         <CFSET session.passagers = "">
         <CFSET session.aeronefs_commerciaux = 0>
         <CFSET session.aeronefs_prive = 0>
         <CFSET session.helicopteres = 0>
         <CFSET session.avaiationmilitaire_jets = 0>
         <CFSET session.aviationmilitaire_porteur = 0>
         <CFSET session.helicopteres_militaires = 0>
         <CFSET session.controlesession = 0>
    
       </cflock>
    </cfif>
    <!--- variable formulaire --->
    
    </cfsilent>
    Rapidement, ce que j'en pense :
    - pas la peine de mettre le cfsilent ou alors apres le cfapplication (il vaut mieux d'ailleurs le mettre sur la premiere ligne)
    - en plus des cfset, je déclarerai les variables avec des cfparam.

  14. #14
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Il faudrait utiliser le pattern Double-Check même s'il est contesté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <cfif not isdefined('application.tobelDSN')>
           <cflock scope="APPLICATION" type="EXCLUSIVE" timeout="5">
                   <cfif not isdefined('application.tobelDSN')>
                      <cfset application.tobelDSN = "XXX">
                      <cfset application.tobelUser = "XXX">
                      <cfset application.tobelPassword = "XXX">
                  </cfif>
           </cflock>
    </cfif>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!--- Un type READ suffit. --->
    <cflock scope="APPLICATION" type="READ" timeout="5">
           <cfset variables.tobelDSN = application.tobelDSN>
           <cfset variables.tobelUser = application.tobelUser>
           <cfset variables.tobelPassword = application.tobelPassword>
    </cflock>
    Pour les variables de session, je préfère les regrouper sous un STRUCTURE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <CFIF not isDefined('session.aeroportData')>
       <cflock scope="SESSION" type="EXCLUSIVE" timeout="30">
         <cfset data = StructNew()>
         <CFSET data.choixutilisateur = 0>
         <CFSET data.aeroport = "">
         ....
         <CFSET session.controlesession = 0>
         <cfset sesion.aeroportData = data>
       </cflock>
    </cfif>
    Bien le bonjour chez vous
    Jowo

Discussions similaires

  1. [JSP][session] perte de session et sendRedirect
    Par blaz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 30/03/2007, 09h32
  2. Perte de Session d'une page à l'autre
    Par Flam dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2006, 14h34
  3. [Struts]Redirection globale en cas de perte de session
    Par Mercenary Developer dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/02/2006, 14h40
  4. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 17h53
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 09h12

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