471,119 Members | 1,391 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,119 software developers and data experts.

Setting expirty data on a cookie

Does anyone know how to do this? I can't seem to make it work.

I'm using:

c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c
This doesn't seem to work, so I'm assuming isn't the correct way to
set an expiry data? Anyone able to help me out here?

Thanks!
Jun 27 '08 #1
5 1580
On Tue, Apr 22, 2008 at 6:21 PM, sophie_newbie <pa**********@gmail.comwrote:
Does anyone know how to do this? I can't seem to make it work.

I'm using:

c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c
This doesn't seem to work, so I'm assuming isn't the correct way to
set an expiry data? Anyone able to help me out here?
You're probably looking for cookielib.Cookie
Jun 27 '08 #2
On Apr 22, 8:38 pm, David <wizza...@gmail.comwrote:
On Tue, Apr 22, 2008 at 6:21 PM,sophie_newbie<paulgeele...@gmail.comwrote:
Does anyone know how to do this? I can't seem to make it work.
I'm using:
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c
This doesn't seem to work, so I'm assuming isn't the correct way to
set an expiry data? Anyone able to help me out here?

You're probably looking for cookielib.Cookie
I don't think so, to give you a more complete picture, if I run this
code:
import Cookie
import time
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c
This codes gives an output of:

"Set-Cookie: data=unamepwordwhatever"

As in there is no mention of an expiry date, when surely there should
be?

Thanks for any advice.
Jun 27 '08 #3
On Apr 24, 12:41 pm, sophie_newbie <paulgeele...@gmail.comwrote:
On Apr 22, 8:38 pm, David <wizza...@gmail.comwrote:
On Tue, Apr 22, 2008 at 6:21 PM,sophie_newbie<paulgeele...@gmail.comwrote:
Does anyone know how to do this? I can't seem to make it work.
I'm using:
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c
This doesn't seem to work, so I'm assuming isn't the correct way to
set an expiry data? Anyone able to help me out here?
You're probably looking for cookielib.Cookie

I don't think so, to give you a more complete picture, if I run this
code:

import Cookie
import time
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c.expires = time.time() + 300
print c

This codes gives an output of:

"Set-Cookie: data=unamepwordwhatever"

As in there is no mention of an expiry date, when surely there should
be?

Thanks for any advice.
Ok this seems to work:

import Cookie
import time
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c['data']['expires'] = 30 * 24 * 60 * 60
print c

Gives an output of:

"Set-Cookie: data=unamepwordwhatever; expires=Sat, 24-May-2008
12:11:36 GMT"

Bizarre that this information was so hard to find!
Jun 27 '08 #4
import Cookie
import time
c = Cookie.SimpleCookie()
c['data'] = "unamepwordwhatever"
c['data']['expires'] = 30 * 24 * 60 * 60
print c

Gives an output of:

"Set-Cookie: data=unamepwordwhatever; expires=Sat, 24-May-2008
12:11:36 GMT"
Hi again. I didn't see your replies until now.

Disclaimer: I've never worked with cookies before, I'm just going by
the rfc, python docs, and wikipedia.

I think the confusion exists because the Cookie module has an unusual
definition of cookies. What we call cookies (key + value +
attributes), the Cookie module calls a Morsel. What the Cookie module
calls a cookie is in fact the collection of Set-Cookie headers that
will be sent by the server.

So for code like this:

c = Cookie.SimpleCookie()
c['data1'] = 123
c['data2'] = 456

the server will output 2 cookies like this:

Set-Cookie: data1=123
Set-Cookie: data2=456

This is why when you want to set the expiry date for one of the
cookies, you need syntax like this:

c['data2']['expires'] = 30 * 24 * 60 * 60

Another note: 'expires' is apprantly a legacy attribute for early
Netscape browsers. The RFC and python source comments suggest that you
use 'Max-Age' instead.

I think that the Cookie module author wanted to represent http state
as a python dictionary, but chose an unfortunate name for the class.
Also, the example page doesn't go into detail about setting
attributes.

David.
Jun 27 '08 #5
On 2008-04-25, David <wi******@gmail.comwrote:
Another note: 'expires' is apprantly a legacy attribute for early
Netscape browsers. The RFC and python source comments suggest that you
use 'Max-Age' instead.
Theoretically, yes. In practice, no. *Nobody* uses the new-style
cookies, everyone uses Netscape ones.
Jun 27 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by bagsmode | last post: by
4 posts views Thread by socialism001 | last post: by
1 post views Thread by Jose Olivas | last post: by
reply views Thread by Chris | last post: by
6 posts views Thread by somaboy mx | last post: by
4 posts views Thread by Vlad Dogaru | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.