javascript not allowing second click is one way....
Another, is don't use a autoincremented integer as the unique key of
the order, or get it from the DB, before you insert. So if in your
process, you ASSIGN a order id, and store as a user var, before
inserting order, then on submit, if submit second time, it will fail
due to unique id contraints.
An easy way to do this, is before submitting order, earlier in the
process, make an order, by inserting a bit of info, and have a field,
called COMPLETE as boolean. on the first submit, make sure you set
complete = false. Now you have a ready order in the db, and an order
id, even if you use autoincrement. on the final submit, UPDATE that
order, and set complete to Y.
There are other ways to skin it, but 2 step order like this is pretty
damn foolproof. I have a couple of sites that take millions of
dollars of orders, one, 2 million a day at times, and have never seen
a dupe, because of a variant of the above method. But in my early
days, it happened enough to piss me off. ;-)
Just remember to have a process, at the end of each month or so, to
purge incomplete orders.
HTH
--
Robert Garcia
President - BigHead Technology
VP Application Development - eventpix.com
13653 West Park Dr
Magalia, Ca 95954
ph: 530.645.4040 x222 fax: 530.645.4040
[EMAIL PROTECTED] - [EMAIL PROTECTED]
http://bighead.net/ - http://eventpix.com/
On Feb 10, 2007, at 11:13 AM, Dan Stein wrote:
I have a very complicated taf that is used to process the orders on my
clients site.
I guess we have been lucky so far. But seems like last month at
least one
person hit the submit button twice looks like they might have even
found a
way to do it before the page refreshed.
It made a duplicate order record and made a mess of the second
order so it
was actually everything twice.
I have not figured out how that could happen yet.
But what is the best way to prevent the submit button from getting
hit twice
if in fact they are going to do it even before page refreshes.
Of note there are at least 3 different forms on this page.
--
Dan Stein
FileMaker 7 Certified Developer
Digital Software Solutions
799 Evergreen Circle
Telford PA 18969
Land: 215-799-0192
Cell: 610-256-2843
Fax 215-799-0192 ( Call 1st)
FMP, WiTango, EDI,SQL 2000, MySQL, CWP
[EMAIL PROTECTED]
www.dss-db.com
Men do not care how nobly they live, but only how long they live,
although
it is within the reach of every man to live nobly, but within no
man's power
to live long. Brian Haig Private Sector
______________________________________________________________________
__
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf
________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/developer/maillist.taf