Under Mozilla 1.3 on Linux, when running your test (e.g. when visiting /createSessionAndRedirect?sessionText=456), I immediately get: ## Page Template "view_session_obj.pt" ## 456 Like you, I suspect this may be a browser issue. To verify, cause the createSessionAndRedirect to generate a "random" query string like this: session = context.REQUEST.SESSION sessionObjName = 'redirectTest' session.set(sessionObjName, sessionText) return context.REQUEST.RESPONSE.redirect(context["view_session_obj.pt"].absolute_url() + '?abc=%s' % context.ZopeTime().timeTime()) This should prevent browsers from returning a cached page. A more permanent solution would be to set a Pragma: No-Cache or Cache-Control: No-Cache HTTP header within "view_session_obj.pt". - C On Tue, 2003-04-15 at 10:58, Brad Powell wrote:
I have a problem where session data does not appear to be updated when the setting of the session data is followed by a response.redirect in a Python script. A browser refresh is required to get the correct data displayed. This happens on both Zope v2.5.1 and v2.6.1. It also happens with IE and Mozilla browsers; but, interestingly, it does not occur with the Konqueror browser. This led me to believe it was a browser issue, but no matter what options I try in IE, I cannot get it to work. I thought it might be an issue with the browser cache settings, but, again, no matter what I try I get the same result.
I've included a test script and page template that demonstrates this problem. When I go to url "sessionCreateAndRedirect?sessionText=123", I get the message, "Problem: no session object (redirectTest)." If I then refresh the browser, I get "123" displayed, which is the correct response. Subsequent calls to the url with different values for sessionText returns the previous session value, until I do a browser refresh.
Any assistance, guidance, wisdom, etc. on this matter would be greatly appreciated.
## Script (Python) "sessionCreateAndRedirect" ##parameters=sessionText ## session = context.REQUEST.SESSION sessionObjName = 'redirectTest' session.set(sessionObjName, sessionText) return context.REQUEST.RESPONSE.redirect(context["view_session_obj.pt"].absolute_url())
## Page Template "view_session_obj.pt" ## <html> <head> <title tal:content="template/title">The title</title> </head> <body> <tal:block define="global sesObj request/SESSION/redirectTest | nothing"></tal:block> <p tal:condition="not:sesObj">Problem: no session object (redirectTest).</p> <p tal:condition="sesObj" tal:content="sesObj">session obj contents</p> </body> </html>
Brad