Hi all, I never really got an answer for the below question, of course maybe the answer isn't there ; ) but never the less I try again. I have now tested it with Zope 2.7.3 and get the same results. Is this an error with the zope sessioning machinery or with the specification in the zope book ? Should it be possible to invalidate a session and create a new session during the same request ? greetings, Sune
Sorry, I'm running both zope 2.7.1 and 2.7.2. (Windows XP, and FreeBSD)
Sune
Which Zope are you running? There were major changes to the session mechanism in 2.7.X.
On Sat, 23 Oct 2004, Sune Broendum Woeller wrote:
Hi all,
In the zope book, sessions chapter, is written:
"Manually Invalidating A Session Data Object
Developers can manually invalidate a session data object.
When a session
data object is invalidated, it will be flushed from the system, and will not be returned by subsequent references to REQUEST.SESSION or getSessionData(). "
and :
"...subsequent references to REQUEST.SESSION in this same request will return a new session data object."
I would like to be able to invalidate the session object, and then create a new session with a new key, to be accessed in the next request.
But I find that when invalidating a session data object, I can *still* access the old session data in subsequent references to REQUEST.SESSION, in the same request that is. I do not get a new session data object, as I should according to the zope book. And therefore I can not reference the new keys I create in the following requests.
Has anyone got a solution for this problem ?
It seems the invalidation goes on "between" requests.
Is this an error with the sessioning machinery or in the zope book ?
Below there are three test scripts, that shows what is going on.
greetings, Sune B. Woeller
file test1.py: ****** s = context.REQUEST.SESSION
s['mykey']='myvalue'
print "Page 1, add a key to session.<br />" print "session : <br />" print s print "<br /><br />" print '<a href ="test2">Page 2, invalidate session and add a new key</a><br />' print '<a href ="test3">Page 3, show session</a><br />'
return printed
*****
file test2.py: ***** s = context.REQUEST.SESSION
print "Page 2, invalidate session and add a new key.<br />"
s.invalidate()
s['mySecondKey']='mySecondValue' print "session after invalidate: <br />" print s
print "<br /><br />" print '<a href ="test1">Page 1, add a key to session</a><br />' print '<a href ="test3">Page 3, show session</a><br />'
return printed
*****
file test3.py: ***** s = context.REQUEST.SESSION print "Page 3, show session<br />" print "session : <br />" print s
print "<br /><br />" print '<a href ="test1">Page 1</a><br />' print '<a href ="test2">Page 2</a><br />'
return printed
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )