Session en 4.5 ?

Résolu
Signaler
Messages postés
24
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
6 octobre 2006
-
Messages postés
24
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
6 octobre 2006
-
Bonjour à tous,

je développe une appli sous MX, qui va être hébergée sur 4.5 et avant de trop avancer mon dév, j'ai testé le fonctionnement des sessions.
évidemment, ça ne fonctionne pas et je me demande si ça vient du paramétrage du serveur 4.5 ou des fonctions qui diffèrent...

j'utilise ce bout de code pour mettre mes variables en session, ce code est celui de la page qui valide le formulaire de login :

  <!-- Mise à "" de la variable de session RESA -->  <cfapplication name "intranet" sessionManagement "Yes">
  <cflock scope="Session" timeout="30" type ="Exclusive">
   <cfset session.RESA_idUtilisateur = "">
   <cfset session.RESA_nomUtilisateur = "">
   <cfset session.RESA_prenomUtilisateur = "">
  </cflock>

  <!-- Vérif dans la BDD si USER existe -->
  <cfquery name="rechercheUser" datasource="RESA">
   SELECT ID_UTILISATEUR, NOM, PRENOM
   FROM UTILISATEUR
   WHERE UTILISATEUR.LOGIN = '#Form.login#'
   AND UTILISATEUR.PASSWORD = '#Form.password#'
  </cfquery>
   
  <cfset nb_result = #rechercheUser.recordcount#>




  <!-- On trouve 1 résultat à la recherche de user -->
  <cfif nb_result IS NOT 0>
   <!-- Mise en session du idUser -->
   <cfset session.RESA_idUtilisateur = #rechercheUser.ID_UTILISATEUR#>
   <cfset session.RESA_nomUtilisateur = #rechercheUser.NOM#>
   <cfset session.RESA_prenomUtilisateur = #rechercheUser.PRENOM#>   
   <!-- Renvoi sur la page de menu-->
   <cflocation url="menu.cfm">   
  <cfelse>
   <cflocation url="login.cfm">   
  </cfif>




Ensuite, sur la page de menu, je teste l'existence des variables de session pour m'assurer que des petits malins ne puissent pas y accéder en tapant directement l'URL :
<cfapplication name "intranet"  sessionManagement "Yes"> 
<cftry>
 <cfset user = #session.RESA_idUtilisateur#>
 <cfif user EQ "">
  <cfset myUrl = "login.cfm"> 
  <cflocation url=#myUrl#> 
 </cfif>
 <cfcatch>
  <cfset myUrl = "login.cfm"> 
  <cflocation url=#myUrl#>
 </cfcatch>
</cftry>

Tout cela fonctionne très bien chez moi mais pas sur le serveur de l'hébergeur, en 4.5

Auriez-vous une idée de là où ça peut venir ??

Merci d'avance !

5 réponses

Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
<cfapplication name = "intranet"  sessionManagement = "Yes"> 
<cfif IsDefined("
session.RESA_idUtilisateur
")>

<cfset user = session.RESA_idUtilisateur>
<cfelse>

<script language="javascript" type="text/javascript">
   document.location.href ="login.cfm";

</script>
 </cfif>


Ca devrait être proche de la solution..

S.
Messages postés
24
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
6 octobre 2006

Au fait quand je dis que ça ne fonctionne pas sur le serveur 4.5, il faut comprendre :

- je n'ai aucun message d'erreur,
- je me retrouve systématiquement sur la page de login alors que l'accès BDD est bon et que la requête ne renvoie pas non plus d'erreur.
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
19
On ne fait po un cflocation après un changement de variable de session..

Il faut passer par un javascript document.location.href = ..

S.
Messages postés
24
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
6 octobre 2006

merci mais... on peut mettre du javascript au milieu du code coldfusion ??!!

au lieu de :


<cfapplication name "intranet"  sessionManagement "Yes"> 
<cftry>
 <cfset user = #session.RESA_idUtilisateur#>
 <cfif user EQ "">
  <cfset myUrl = "login.cfm"> 
  <cflocation url=#myUrl#> 
 </cfif>
 <cfcatch>
  <cfset myUrl = "login.cfm"> 
  <cflocation url=#myUrl#>
 </cfcatch>
</cftry>

si je mets ça, c'est possible ??
<cfapplication name "intranet"  sessionManagement "Yes"> 
<cftry>
 <cfset user = #session.RESA_idUtilisateur#>
 <cfif user EQ "">
   document.location.href ="login.cfm";
 </cfif>
 <cfcatch>
   document.location.href = "login.cfm";
 </cfcatch>
</cftry>
Messages postés
24
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
6 octobre 2006

merci beaucoup syndrael, ça fonctionne parfaitement.

Je savais pas qu'on pouvait mettre du JS dans du CF, je dois dire que ça va bien m'aider parceque plusieurs fois j'ai dû ruser pour contourner ça, alors que j'aurais pu faire tellement plus simple !!!

merci encore et bonne journée