|
Adrian Immler
mod_python-maillist at uebergeek.de
Mon Feb 21 12:19:01 EST 2005
hello !
[code at the end]
i have reduced my script to a minimum, but somehow only the sess.save()
in the "if" condition works just before the redirect. every later
attempt i am told:
------[ SNIP ]----------------------------------------------
Mod_python error: "PythonHandler mptest"
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line
299, in HandlerDispatch
result = object(req)
File "/usr/local/httpd/htdocs/test/mptest.py", line 42, in handler
sess.save()
File "/usr/lib/python2.4/site-packages/mod_python/Session.py", line
204, in save
self.do_save(dict)
File "/usr/lib/python2.4/site-packages/mod_python/Session.py", line
329, in do_save
dbm[self._sid] = cPickle.dumps(dict)
File "/usr/lib/python2.4/dumbdbm.py", line 160, in __setitem__
raise TypeError, "keys and values must be strings"
TypeError: keys and values must be strings
------[ SNAP ]----------------------------------------------
so what am i doing wrong ? here is the non-working code:
------[ SNIP ]----------------------------------------------
from mod_python import apache
from mod_python import util
from mod_python.util import FieldStorage
from mod_python import Session
def handler(req):
req.content_type = "text/html"
fs = FieldStorage(req)
sess = Session.Session(req, fs.getfirst("SID"))
if sess.is_new():
sess.save()
util.redirect(req,"http://localhost/test/mptest.py?SID=" +
sess.id())
else:
sess['foo'] = 'spam'
sess['bar'] = 'eggs'
sess.save()
return apache.OK
|