I would like to see how Web Developers avoid the double submission problem. So basically my understanding of the problem is as follows:
Double submission occurs when an impatient user submits a form multiple times, causing issues. This problem can be fixed by JavaScript (specifically jQuery scripts) that disable the submit button once the form has been submitted - a weakness of this is if clients have JavaScript disabled.
There is also server side methods of detection.
So my questions are:
How do people overcome double submission? What is a real life example of a problem caused by double submits? Do any Web Application Frameworks have double submission tools built in?
To disable just the submit button(s), you could do this: $('button[type=submit], input[type=submit]'). prop('disabled',true);
1.1 To disable a submit button, you just need to add a disabled attribute to the submit button. $("#btnSubmit"). attr("disabled", true); 1.2 To enable a disabled button, set the disabled attribute to false, or remove the disabled attribute.
Real life situation: placing bets on a betting website. Users would double click and get two bets placed. Not good! Javascript checks were not sufficient to prevent this.
Solution:
Create UUID/GUID hidden input in form using server-side scripting language that renders the form.
On form submission immediately add this to a database table called UniqueSubmissions
(for example). Then proceed with processing.
Every subsequent request with the same UUID/GUID will be rejected if found in the UniqueSubmissions
table.
This worked for us. Hope that helps answer your question!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With