Solved

ColdFusion Error: Session.SessionID Not Defined?

Posted on 2009-04-06
10
1,376 Views
Last Modified: 2013-12-24
I'm getting errors "Element SESSIONID is undefined in SESSION."

How is this possible? I was under the impression that a Session.SessionID is ALWAYS defined on each request?
0
Comment
Question by:davidsanderson
  • 5
  • 4
10 Comments
 
LVL 39

Expert Comment

by:gdemaria
ID: 24078017
you have session management turned on in your cfapplication tag?

If you're using application.cfc (instead of .cfm)  are you doing this command in onApplicationStart or onApplicationEnd  or onSessionEnd ?   Session variables are not available directly in these functions
0
 

Author Comment

by:davidsanderson
ID: 24078091
Yes I have session management turned on.

I'm using application.cfc. I'm not calling session.sessionid in this file at all. It does get called outside of this file though.
0
 
LVL 19

Expert Comment

by:erikTsomik
ID: 24078112
is there something in your code that clears session variables
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 24078115
do you have clear the session structure (perhaps for logout?)

I would start by placing a test at the start of onRequestStart to see if the session.sessionID is defined there (before the bulk of your code is executed)

What version of Coldfusion are you using?   I think session.sessionID started with MX ?
0
 

Author Comment

by:davidsanderson
ID: 24078425
Yes, when the login times out, it calls a function that clears the session variables, but then it redirects them (cflocation) back to the login page. This would be another request, correct? So a new sessionid would be defined?

I'm using CF 8.

By the way, I can't reproduce this error, several users are getting this error though.
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 39

Expert Comment

by:gdemaria
ID: 24078512
I have never felt comfortable clearing all session variables because some are used by the system and we can't predict when they are re-created or used.

Coldfusion places cookies to maintain the session, they don't use the session variables directly for session management, they are more like an FYI for us developers.   I am referring to CFID, CFTOKEN and sessionID.    I suspect if you were to kill the cookies, the session may be recreated, but I can't say that clearing out the session variables only would cause them to be recreated (because the cookies still exist).

I have always just cleared the variables that I use.   To make this easier, I add a structure within session to manage this...   session.login.userID  and then just delete the login structure and leave the rest of the session alone..
0
 

Author Comment

by:davidsanderson
ID: 24079976
I can't really recode the whole app to use a different session variable structure. This app is HUGE.

I could just do away with the StructClear(Session) statement but I don't want any old session data hanging around if the user logs out.

Any other suggestions?
0
 
LVL 39

Accepted Solution

by:
gdemaria earned 125 total points
ID: 24080081
ok, didn't know if you were starting out or what.

You can loop over the session structure and avoid those key variables ...


<cfloop item="kk" collection="#session#">

  <cfif listFindNoCase("cfid,cftoken,sessionID",kk) eq 0>

    <cfset "session.#kk#" = "">

  </cfif>

</cfloop>

Open in new window

0
 

Author Comment

by:davidsanderson
ID: 24080308
That looks good. Should I also include urltoken since that's another built-in variable?
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 24080361
sure, makes sense...

And if there are any that you are maintaining that you don't want to lose, perhaps the session start date/time or something..
0

Featured Post

Superior storage. Superior surveillance.

WD Purple drives are built for 24/7, always-on, high-definition security systems. With support for up to 8 hard drives and 32 cameras, WD Purple drives are optimized for surveillance.

Join & Write a Comment

Hi, I will be creating today a basic tutorial on how we can create a Mail Custom Function and use it where ever we want. The main advantage about creating a custom function is that we can accommodate a range of arguments to pass to the Function and …
Today, I was working on some optimization and spam-stopping techniques when I encountered Ben Nadel's post to reduce spam feature using Math (http://www.bennadel.com/blog/197-How-I-Stop-Spammers-On-My-ColdFusion-Blog.htm). While this method is not o…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now