Peter.Bleackley at rd.bbc.co.uk
Fri Sep 12 11:00:11 EDT 2008
A web application I'm writing has an "email a friend" function in it, which is failing for reasons I don't understand. I'll send the relevant bits of the code here (anything unrelated to the problem is omitted). This is running under the Publisher handler. from mod_python import apache,Cookie,util from pysqlite2 import dbapi2 as sqlite def login(req): username=req.form['user'] # Irrelevant code omitted demographics=sqlite.connect('database.db') #Not the real filename cursor=demographics.cursor() # Skip userid=cursor.execute("select rowid in logins where username=?",(username,)).fetchone() cur=cursor.execute('insert into sessions (userid) values (?)',(userid,))) sessionid=cur.lastrowid sessioncookie=Cookie.Cookie('sessionid',sessionid) Cookie.add_cookie(req,sessioncookie) demographics.commit() #Rest of this function is irrelevant def email(req): sessioncookie=Cookie.getcookies(req) sessionid=int(sessioncookie['sessionid'].value) demographics=sqlite.connect('database.db') cursor=demographics.cursor() userid=cursor.execute('select userid from sessions where rowid=?',(sessionid,)).fetchone() At this point I get TypeError: unsubscriptable object which, in my experience, usually means that fetchone() has returned None. I can't work out why it's doing this, as the sessionid obtained from the Cookie should be the same value as was set when the user logged in, and that was a rowid from the database table I'm searching. Anybody got an ideas what's wrong here? Dr Peter J Bleackley Research Engineer BBC Research.