> Take some elements from the form and search for an add in the past > <time period>. We did one recently where we took the email address, > recipient and amount from the form and then made sure that the same > data hadn't already been submitted in the last 24 hours - working on > the principle that a user is unlikely to gift the exact same amount to > the same person on the same day. The check is trivial compared to the > commit. > > FWIW, we looked into this and this approach seemed to be the quickest > and most reliable available. If you Google on this, you may find an > article or two which support this approach.
This does seem workable and reliable. I suppose I'm hoping for an approach that can easy re-used across many forms, without much per-form effort required. Also, I think for some kinds of changes being submitted, the check of "has this happened recently" won't apply. For example, we allow people to re-order a list of photos. They may well reverse the ordering a few seconds later and put the photos back in the original order. (Although that example may not be vurnerable to a double-submit bug, as it would be valid to submit the same ordering request twice. ) Mark