Re: Can a script run twice?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux