|
Alberto Ruiz
al at ruiz.ws
Fri Mar 31 21:21:27 EST 2006
Correction, it should send the header: 'Set-Cookie:'
Is the problem due that I'm calling R.send_http_header() before
constructing the cookie?
On Fri, 2006-03-31 at 19:11 -0700, Alberto Ruiz wrote:
> Something is wrong with the Cookie class because the web reply is not
> sending the cookie properly. Am I doing something wrong? This setup was
> working fine on a Debian system. It is now running on a FreeBSD. I
> sniffed the web server reply and this is what am getting:
>
> HTTP/1.1 200 OK.
> .Date: S at, 01 A
> pr 2006 01:30:21
> GMT..Se rver: Ap
> ache/1.3 .33 (Uni
> x) mod_p ython/2.
> 7.11 Pyt hon/2.4.
> 2 PHP/4. 4.2 mod_
> perl/1.2 9..Keep-
> Alive: t imeout=1
> 5, max=1 00..Conn
> ection: Keep-Ali
> ve..Tran sfer-Enc
> oding: c hunked..
> Content- Type: te
> xt/html. ...62 ..
> userq=up date use
> r set SI D='EndNx
> nm0nnJEp Jtug4b2f
> WjusIDRV 3Kw' whe
> re name= 'lorim'
> and pass word='12
> 3'..41 . .<head><
> meta htt p-equiv=
> 'refresh ' conten
> t='0;url =/BB.htm
> l'></hea d>..1 .
> . ..0... .
>
> So as you can see I'm getting a 62 and then some wierd text from a sql
> query and then the Cookie contents, as well as some other stuff. But
> 'Cookie:' should be preappended to the cookie. Here is a snippet of the
> code handling the cookie:
>
> .....
> from mod_python import Cookie
>
> def index (req,LLRuser='',LLRpw=''):
> global R; R=req; R.content_type="text/html"
> R.send_http_header()
> cur=DBconnectpropman.DB.cursor()
> sidrefreshing=0
> ZWF.R=R
> global SID;SID=''
> global UID;UID=''
> cookies = Cookie.get_cookies(R, Cookie.MarshalCookie,
> secret='LLR14151111')
>
> if LLRuser!='' and LLRpw!='': # login attempt
> if string.find(LLRuser,"@")!=-1: #client login attempt
> cur.execute("select clientid,name,password from client where
> email='"+LLRuser+"'")
> userrs=cur.fetchone()
> if str(userrs)!='None':
> LLRuser=userrs[1]
> usertable='client'
> else:
> cur.execute("select * from user where name='"+LLRuser+"' and
> password='"+LLRpw+"'")
> userrs=cur.fetchone()
> usertable='user'
> if str(userrs)!='None': #login success create session key, update user
> record, sett sid cookie
> SID=''
> for n in range(0,32):
> x=random.randint(48,108)
> if x>57:x+=8
> if x>90:x+=6
> SID+=chr(x)
> cookie = Cookie.Cookie('sid', SID); cookie.expires = time.time() +
> 36000; Cookie.add_cookie(R, cookie)
> q="update "+usertable+" set SID='"+SID+"' where name='"+LLRuser+"'
> and password='"+LLRpw+"'"
> R.write("userq="+q)
> cur.execute(q)
> R.write("<head><meta http-equiv='refresh'
> content='0;url=/BB.html'></head>")
> sidrefreshing=1
> if cookies.has_key('sid'):
> #we have a session id, is it valid?
> USER=ZWF.usercheck(R,cur)
> SID=USER.SID
> UID=USER.UID
> ........
>
> Let me know if you need any other info.
>
> Can I use the regular python Cookie class instead?
|