Graham Dumpleton
grahamd at dscpl.com.au
Sat Nov 18 01:43:08 EST 2006
On 18/11/2006, at 4:46 AM, Istvan De wrote: > Hi Graham, > > On Fri, 2006-11-17 at 20:21 +1100, Graham Dumpleton wrote: >> On 17/11/2006, at 8:09 PM, Istvan De wrote: >> >>> Hi! >>> >>> In my code, if I detect that a cookie is not set, I set it using >>> Cookie.add_cookie(). >>> >>> That is all well. However, if I read this cookie from the same >>> request >>> at which it was added, it is not available. I guess this is because >>> the >>> "cookie add" function puts the cookie into the reponse of the page, >>> and >>> the "cookie get" function only looks at the request to see what >>> cookies >>> are set. >>> >>> What is the solution to my problem? >> >> Cookie.get_cookies() reads from req.headers_in. Cookie.add_cookie() >> writes to req.headers_out. Thus, you can't read back what you only >> just >> wrote. >> >> Suggest you log using apache.log_error() the values of the input and >> output headers to see what they are set to. >> >> Note that Cookie.add_cookie() must be called prior to the first time >> that >> any actual content is written back as the response. > > Yes, these are all clear to me. But what do you advise as the solution > to the problem? I need to read some cookies just created. Or maybe > re-load the page with a meta tag after creating the cookies? But this > would be sort of a hack. Please keep discussion on the mailing list. It is unclear why you would want to do it in the first place which possibly suggests that whatever you are doing you are going about it all in the wrong way. Can you explain what problem it is you are really trying to solve. Anyway, req.headers_in should be writable and so you could always create the 'cookie' header and resave it. That can be a bit tricky though if you are getting sent multiple cookies as you potentially have to merge it back in with those other cookies. Graham
|