After the page with the reset password form has been loaded, you can see if there is a _formkey[no_table/create] key in the session and confirm the value stored there is the same as the value in the hidden _formkey field in the form on the HTML page.
Anthony On Friday, July 26, 2013 10:51:39 AM UTC-4, lesssugar wrote: > > It could be something with the session. As I wrote: the first form > (request_reset_password) works fine - it validates, it sends email with > reset link. But after the link is clicked and the reset_password form > appears - the form is useless, new password can't be created. > > You wrote that it's possible that the _formkey check does not pass when > submitting. Any ideas how to debug in such case? If it's not this, it could > be everything. > > On Thursday, July 25, 2013 8:34:38 PM UTC+2, Anthony wrote: >> >> When the form doesn't validate but you get no error messages, it often >> means the _formkey checked didn't pass (the _formkey is stored in the >> session, so often this is due to an issue with the session or cookies). >> >> Anthony >> >> On Thursday, July 25, 2013 1:50:09 PM UTC-4, lesssugar wrote: >>> >>> No. Cookies are on. I'm not clearing the session explicitly anywhere in >>> the code neither. Just created dummy app to test password reset - and >>> validation works fine in both forms (requesting reset, creating new >>> password). default/user function of the dummy application is standard and >>> it looks just like mine. No idea what's going on, but it definitely must be >>> my fault somehow. >>> >>> I'll keep digging. Let you know if I find the bug. >>> >>> On Thursday, July 25, 2013 6:08:38 PM UTC+2, Anthony wrote: >>>> >>>> Is it possible that cookies are disabled or that the session is somehow >>>> getting cleared (e.g., session.forget() or session.clear())? >>>> >>>> On Thursday, July 25, 2013 11:49:54 AM UTC-4, lesssugar wrote: >>>>> >>>>> When submitting the form with different passwords - the page reloads >>>>> and that's it. No validation, no error response.flash, nothig. The same >>>>> issue occurs with the same passwords and with empty inputs. >>>>> >>>>> web2py version: 2.4.7-stable >>>>> >>>>> On Thursday, July 25, 2013 5:44:18 PM UTC+2, Anthony wrote: >>>>>> >>>>>> What happens if the passwords are different? Which version of web2py? >>>>>> >>>>>> On Thursday, July 25, 2013 11:14:21 AM UTC-4, lesssugar wrote: >>>>>>> >>>>>>> Thanks, Anthony, I removed the if statement and it worked for >>>>>>> request_reset_password. >>>>>>> >>>>>>> However, after I click the link sent to e-mail address, the >>>>>>> reset_password form still doesn't process "New password" and "Verify >>>>>>> password" fields. The inputs can be empty, the passwords can be >>>>>>> different - >>>>>>> no validation is performed. >>>>>>> >>>>>>> On Thursday, July 25, 2013 4:51:46 PM UTC+2, Anthony wrote: >>>>>>>> >>>>>>>> >>>>>>>> def user(): >>>>>>>>> >>>>>>>>> auth.settings.formstyle = 'divs' >>>>>>>>> >>>>>>>>> if request.args(0) == 'request_reset_password': >>>>>>>>> auth.request_reset_password(next = URL('default', 'index')) >>>>>>>>> >>>>>>>>> return dict(form=auth()) >>>>>>>>> >>>>>>>> >>>>>>>> Your code is creating and processing the form twice. >>>>>>>> auth.request_reset_password(...) creates and processes the form >>>>>>>> (though you aren't storing that version in a variable and passing it >>>>>>>> to the >>>>>>>> view). Then, form=auth() once again calls >>>>>>>> auth.request_reset_password(), which creates and processes the >>>>>>>> form a second time. When the form is submitted, the first call >>>>>>>> processes >>>>>>>> the form and does the validation, but the second call then creates a >>>>>>>> new >>>>>>>> form. You can simply eliminate that whole "if" segment from your code >>>>>>>> -- >>>>>>>> form=auth() will take care of everything. >>>>>>>> >>>>>>>> Anthony >>>>>>>> >>>>>>>> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.