Re[4]: [PHP-WIN] Preventing multiple submits
| From: | Pablo Vera | Date: | Thu, 24 Aug 2000 22:11:33 +0000 |
| Subject: | Re[4]: [PHP-WIN] Preventing multiple submits | ||
| References: | 1 | Groups: | php.windows |
| Request: | Send a blank email to php-windows+get-2121@lists.php.net to get a copy of this message | ||
>>Are you saying by default that as soon as PHP receives a form it doesn't
>>accept any more forms from the same client?
ZG> No. I am saying that your script should work this way.
ZG> ie.
ZG> if (! $post_counter)
ZG> // handle form submission
ZG> else
ZG> print "Your form has been sent";
ZG> if ($HTTP_POST_VARS[$submit])
ZG> $post_counter = 1;
Zak:
I think that the "if (! $post_counter)" will always result in a true
condition, this is because the only ways to preserve a variable from
instance to instance of a script is by sending them in the URL or by
setting a cookie, but since the form is being submitted twice from
exactly the same page, you will have two scripts running at the same
time, with exactly the same variables and values, and the output of
the first one will not be received by the browser, because the second
one canceled that connection. You will end up processing two forms,
but the user will receive confirmation for only one.
I know that JavaScript (or any other Client-Side tool) has its
limitations as noted by you before, but with it you will stop the
second submission before it is actually sent. The first script will
run normally and return its output to the browser, without knowing
that the user tried to send the form for a second time. The browser
will no cancel that first connection, because it is not posting a
second form.
Pablo.