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
>

Reply via email to