Session en 4.5 ?

Résolu
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006 - 7 juil. 2006 à 15:28
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006 - 10 juil. 2006 à 09:38
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

syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
10 juil. 2006 à 08:44
<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.
3
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006
7 juil. 2006 à 15:31
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.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 juil. 2006 à 18:02
On ne fait po un cflocation après un changement de variable de session..

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

S.
0
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006
10 juil. 2006 à 00:31
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
smathios Messages postés 24 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 6 octobre 2006
10 juil. 2006 à 09:38
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
0
Rejoignez-nous