Setting expirty data on a cookie

S

sophie_newbie

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!
 
D

David

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
 
S

sophie_newbie

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.
 
S

sophie_newbie

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!
 
D

David

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,817
Latest member
DicWeils

Latest Threads

Top