You have an old web2py version. This problem no longer exist.
On Tuesday, 3 April 2012 03:06:48 UTC-5, Cédric Mayer wrote: > > Hello everyone, > I'm developping an application over web2py, and I stumbled on a problem > when I simply log in, using the normal auth() mechanism. It has previously > always been fine, as I logged in normally before doing anything. > But today: > - I awoke my computer (from hibernate mode) ; > - I accessed one form that I had opened yesterday while logged in ; > - I submitted the form > - The session was not active anymore so web2py asked for my credentials > - I gave them and submitted the credential form > - There I have an internal server error. > It comes from the login module, which tries to format an url with "%" in > it: > > File > "C:/Users/cedric/projets/LACT/eclipse/web2py_src/web2py/applications/lact/controllers/default.py" > <http://127.0.0.1:8000/admin/default/edit/lact/controllers/default.py>, line > 33, in user > return dict(form=auth()) > File > "C:\Users\cedric\projets\LACT\eclipse\web2py_src\web2py\gluon\tools.py", line > 1126, in __call__ > return getattr(self,args[0])() > File > "C:\Users\cedric\projets\LACT\eclipse\web2py_src\web2py\gluon\tools.py", line > 1726, in login > next = replace_id(next, form) > File > "C:\Users\cedric\projets\LACT\eclipse\web2py_src\web2py\gluon\tools.py", line > 79, in replace_id > return url % form.vars > ValueError: unsupported format character 'D' (0x44) at index 51 > > (...) > Code listing > > 74. > 75. > 76. > 77. > 78. > 79. > > 80. > 81. > 82. > 83. > > if url and not url[0] == '/' and url[:4] != 'http': > # this is here for backward compatibility > return URL(url.replace('[id]', str(form.vars.id))) > elif url: > # this allows http://..../%(id)s/%(name)s/etc. > return url % form.vars > > return url > > class Mail(object): > """ > > Variables url > '/lact/editor/question/2?f_comments=&f_form=2+x+3...ar_v_2=6&qvar_v_7=&qvar_v_8=&stay_here=Save&v2x3=' > > form.vars <Storage {'password': '7f689223289a799b54dd575b9...': > 'xxxxxxxxxx', 'remember': 'on'}> form <gluon.sqlhtml.SQLFORM object at > 0x07D44C70> > Thanks to eclipse, I was able to see the 51th character and the source of > the error: > url is: > /lact/editor/question/2?f_comments=&f_form=2+x+3+%3D+%3Cinput...&stay_here=Save&v2x3= > > So as the next url contains "%3D", the python formater thinks that it must > format something, but it doesn't know the format character "D", thus the > error. > The problem persists if I try to log in simply afterwards, as web2py will > try to get me the the last "next" url, which leads to the same error. > I was obliged to go to a simple URL that requires to be logged in, in > order to override this "next" url, and stop the error. > > I'm using: > web2py™ (1, 99, 2, datetime.datetime(2011, 9, 26, 6, 55, 33), 'stable') > Python Python 2.5.4: C:\Program Files (x86)\python25\python.exe > I am new to the web2py group, so please excuse the format of this message. > Is it a known problem? I didn't try with the current 1.99.7 version, maybe > this is corrected? > Should I open an issue ticket? > Do you think some information is missing? > > Thank you all, > Cedric >