Thanks Anthony for reply! I used session=None because SQLFORM was not
working on disabling browser cookies.
Why can't you use cookies?
Currently I am using session and cookies, but I am worried about the users
who disable/block their browser cookies (don't know % of such users).
I disabled my browser cookies from browser settings, then I am not able to
submit form successfully. So how can I make my web2py application(/SQLFORM)
to work for users who disable their browser cookies?
SQLFORM will not work if browser cookies are disabled?
Thank You
- Gaurav Vichare
On Friday, December 30, 2016 at 7:58:15 PM UTC+5:30, Anthony wrote:
>
> By default, forms include a hidden _formkey field, with the formkey also
> stored in the session. Upon submission, if the submitted formkey does not
> match one in the session, the submission is rejected -- this prevents CSRF
> attacks as well as double submission. If you set session=None, you disable
> this functionality. In that case, you must create your own mechanism to
> prevent CSRF attacks and double submissions (could be tricky without
> sessions/cookies).
>
> Why can't you use cookies?
>
> Anthony
>
> On Friday, December 30, 2016 at 4:34:38 AM UTC-5, Gaurav Vichare wrote:
>>
>>
>> After disabling firefox browser cookies, SQLFORM is unable to accept the
>> form, values are not inserted in db, also it does not show any errors. It
>> just submits the form and returns new empty form. Does SQLFORM work only
>> when cookies are enabled?
>>
>> I am able to submit the form successfully by adding argument session=
>> None and formname=None to SQLFORM.proccess(), but it adds another issue-
>> form double submission. when page is refreshed after submission, it
>> resubmits the values.
>>
>> How to use SQLFORM when cookies are disabled, also prevent double
>> submission?
>>
>> Code:
>>
>> #models/db.py
>> db.define_table("person", Field("name", "string"))
>> # controllers/default.py
>> def add_person():
>> form = SQLFORM(db.person) # if form.process(session=None,
>> formname=None).accepted:
>> if form.process().accepted:
>> response.flash = "form accepted"
>> elif form.errors:
>> response.flash = "form has errors"
>> return dict(form=form)
>>
>>
>> <!-- views/default/add_person.html -->
>> {{extend "layout.html"}}
>>
>> {{=form}}
>>
>>
>>
>> Thank You
>>
>> - Gaurav Vichare
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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 [email protected].
For more options, visit https://groups.google.com/d/optout.