Lester Caine wrote:
Stut wrote:
Lester Caine wrote:
I'm having very occasional problems with my PHP5 applications which
only seem to be explained if the script is run twice.
Example - page has 'Add Ticket' button, which adds a record and marks
it as being processed by the location that created it. 99.99% of the
time no problems, but just now and again there are two records, with
different primary keys - so the database bit worked - but with very
close now times and identified as being at the same counter. The next
page does not have the 'Add Ticket' button, so it would seem the
first script was trigger twice?
Am I simply going mad ( which is the logical choice ;) ), or is this
something that can happen and needs to be handled?
This can happen if a page contains a reference to an empty URL. For
example, <img src="" /> would cause the page to be loaded twice in
some browsers. That'd be the first thing I'd check.
Is the 'Add Ticket' button a GET or POST request? If it's a POST then
chances are the script itself has a logic error since the user would
get asked if they wanted to repost the data. If it's a get then you've
violated one of the cardinal rules of web-based application
development - GETs get, POSTs do.
<a class="button" accesskey="A" href="ticketaddserve.php?enqno=0">Add
Ticket</a>
if add ticket actually does an insert then it should be a form button - and use
POST. no arguments.
Just change enqno= for a different queue.
Found the simple answer - Double click - two records !
And I'm with you on the problems with IE7 Chris - but in this case even
Moz does the Double Click - two records :(
So next problem - how do I stop it !
the answer is on the firebird list (you know the one ;-) obviously it assumes
you use a POST - but the same disabling trick could be performed on the link with
various bits of javascript.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php