I am not setting the sesion variables again and again. The code is inside a IF block.

<cfif isDefined("url.SEARCHBUTT") and url.SEARCHBUTT eq "clicked">
<cfloop collection="#url#" item="iUrl">
<cfif url[iURL] neq "">
  <cflock scope="SESSION" timeout="30" type="EXCLUSIVE">
     <cfset "session.searchresults.#iUrl#" = "#url[iURL]#">
  </cflock>
</cfif>
</cfloop>
<cfloop collection="#session.searchresults#" item="sessionVar">
   <cfset "url.#sessionVar#" = "#session.searchresults[sessionVar]#">
</cfloop>
</cfif>

When users perform the search the url variable SEARCHBUTT is passed in the query string. It only gets passed to the searchresults page when the search button is clicked. The above code only gets executed when this condition is true. When the user comes back to this page after visiting other pages, the session variables go missing. Now my understanding of the whole point of session variables is that because they are stored in memory, you can refer to them from any page in the application.

Here is my cfapplication tag

<CFAPPLICATION NAME="MyApplication"
     CLIENTMANAGEMENT="Yes"
     SESSIONMANAGEMENT="Yes"
     SETCLIENTCOOKIES="No"
     SESSIONTIMEOUT="#CreateTimeSpan(0,0,30,0)#">

I'd really appreciate your help
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]

Reply via email to