Passage #session.URLToken# dans chaque lien !!!!

cs_miketrix Messages postés 4 Date d'inscription jeudi 3 juillet 2003 Statut Membre Dernière intervention 3 février 2004 - 31 janv. 2004 à 00:45
cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 - 31 janv. 2004 à 02:52
Salut à tous,

JE suis étudiant en projet CFM, c'est mon deuxième projet donc je commence vaguement à manipuler le CFM de façon correcte :) ( quoi que .... sauf pour ce qui suit :p )

Mon problème est le suivant : pour maintenanir ma session, je me vois contraint de passer en url le #session.URLToken# pour pouvoir les récupérer de pages en pages.
Certes, ca marche, mais c'est relativement lourd à gérer !!!...

Je procède donc comme suit pour mes liens :
<script>window.location.href="accueil.cfm?<cfoutput>#session.URLToken#</cfoutput>&page=home.cfm"</script>

Vous conviendrez que c'est lourd, et pas trop lisible :(

Je me suis dit que cela était certainement en rapport avec mon fichier application.cfm (gestion avec/sans cookies ??? etc ...)

Voici ma config
----------------------------------------------------------
<cfAPPLICATION name="Sondage" sessionmanagement="YES" setclientcookies="NO"
sessiontimeout=#CreateTimeSpan(0,0,30,0)#>

// initialisation variables de session
----------------------------------------------------------

Si vous pouvez m'expliquer l'origine de ce problème...?

D'autre part, je cherche un moyen simple pour rediriger mes pages, un équivalent coldfusion de ce qui se fait en php par ex : Header("Location: url");

Merci à tous d'avance, la doc sur cfm est pas spécialement facile à trouver, et j'ai déjà parcouru le forum sans réellement trouver de réponse directe à mon problème, donc je vous serais vraiment reconnaissant si vous pouviez m'informer :)

-- Miketrix

1 réponse

cs_bastoun Messages postés 164 Date d'inscription dimanche 1 octobre 2000 Statut Membre Dernière intervention 23 mars 2007 1
31 janv. 2004 à 02:52
t'es sous cf5 ou cfmx ?

en gros, si tu veux faire simple et pas te prendre la tête, dans le cfapplication, tu actives le management client, session, cookies...

et zou... tout passera par cookie si les utilisateurs les acceptent, ou par des cookies de session.
donc, là tu peux faire tes liens normalement (pourquoi tes liens sont dans un js location.replace??)

si tu veux faire une redirection, tu as plusieurs solutions :
- cflocation (mais tu ne peux pas gérer les cookies sur une page dans laquelle il y a un cflocation). Si tes sessions ne sont pas gérés grace aux cookies, met l'attribut addtoken à yes, ou ajoute les token et id directement dans l'url

- <cfheader statuscode="302" statustext="Object Moved">
<cfheader name="location" value="#url#">

- <CFHEADER NAME="Refresh" VALUE="0;
URL=http://www.example.com/mytemplate.cfm">

Si tu as peur que les personnes aient désactivé les cookies, soit tu utilise URLSessionFormat(url) sur chacune de tes url (oui, c lourd.. mais bon..et ça marche que sous cfmx.. l'avantage est que ç gère les token sur les url si besoin uniquement), ou alors tu passe les token en param de tes url, après avoir vérifié que les cookies étaient inactifs.

Par contre, pour la doc, il te suffit d'aller sur le site macromedia.
doc cfmx 6.1
si c'est pour une autre version de cf, il y a un lien en bas de la page.

attention, il arrive qu'il y aie un bug avec les cfid et cftoken, si tu les as en cookie et url (sous MX) : dans ce cas, pour l'éviter, dans ton application.cfm repasse tout tes cfid cftoken (jsessionid ??) dans un listfirst
ex:
<cfif isdefined('client.cfid')>
<cfset client.cfid = listfirst(client.cfid)>
</cfif>
0
Rejoignez-nous