Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Setting expirty data on a cookie

Reply
Thread Tools

Setting expirty data on a cookie

 
 
sophie_newbie
Guest
Posts: n/a
 
      04-22-2008
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!
 
Reply With Quote
 
 
 
 
David
Guest
Posts: n/a
 
      04-22-2008
On Tue, Apr 22, 2008 at 6:21 PM, sophie_newbie <(E-Mail Removed)> wrote:
> 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
 
Reply With Quote
 
 
 
 
sophie_newbie
Guest
Posts: n/a
 
      04-24-2008
On Apr 22, 8:38 pm, David <(E-Mail Removed)> wrote:
> On Tue, Apr 22, 2008 at 6:21 PM,sophie_newbie<(E-Mail Removed)> wrote:
> > 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.
 
Reply With Quote
 
sophie_newbie
Guest
Posts: n/a
 
      04-24-2008
On Apr 24, 12:41 pm, sophie_newbie <(E-Mail Removed)> wrote:
> On Apr 22, 8:38 pm, David <(E-Mail Removed)> wrote:
>
> > On Tue, Apr 22, 2008 at 6:21 PM,sophie_newbie<(E-Mail Removed)> wrote:
> > > 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!
 
Reply With Quote
 
David
Guest
Posts: n/a
 
      04-25-2008
> 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.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Any downsides to cookie assignment inside custom class using HttpContext.Current? ASP.NET 2.0 cookie fix? ASP .Net 2 08-17-2005 06:43 AM
Cookie and Session Cookie Questions. Shapper ASP .Net 1 04-27-2005 11:20 AM
Session cookie? Browser instance cookie? Ben ASP .Net 3 06-03-2004 03:41 AM
IE6 always rejects a particular cookie regardless of privacy/cookie setting Timur Tabi Javascript 1 05-14-2004 09:13 PM
Retrieving cookie data through document.cookie (Javascript) Vikram Bhatia Javascript 1 10-11-2003 12:54 PM



Advertisments