Eric,

Forgive me for coming in late on this... I haven't read the whole thread,
but I'd start be saying that obviously JavaScript is not an option, and
quite possible "asking them not to click the back button" is not an option
either.

I use the following theory on a single page form, but can't see any reason
why it can't happen on a multi part form.


I perform all form validation BEFORE outputting anything to the page, and
establish if the form data was good or not.  Good results in uploading to
the DB, and a redirect to a thanks page (or in your case, another form), and
bad results in the form being shown again.

Since nothing is sent to the page (other than a redirect) if the data is
good, the page doesn't exist at the browser, so there's no chance of them
hitting back and re-submitting the data twice by accident.

Of course they CAN hit back and see the form they just filled out, and make
changes to it, and resubmit on purpose, but is this such a bad thing??


On the other hand, once they reach stage 2 (ie, stage 1 was valid), you
could always set a cookie.  If they DO click back to stage 1, you could
always do a check for that cookie, and NOT show them the form again, which
removes just about any chance of them resubmitting data, or going back thru
the steps, UNLESS they have cookies turned off... which is a low percentage.

Changing this to sessions in the URL would remove the chance all together.


I'd recommend NOT breaking THEIR browser with the disabling of the back
button... it's THEIRS after all, and they may WANT to go back through the
sites they surfed before hitting you.


Just my opinion though :)


Justin French
--------------------
Creative Director
http://Indent.com.au
--------------------

on 03/04/02 1:54 AM, Erik Price ([EMAIL PROTECTED]) wrote:

> 
> On Tuesday, April 2, 2002, at 09:15  AM, Rick Emery wrote:
> 
>> use cache control in your HTML to prevent BACK button usage
>> This is easily done
> 
> I've tried this using the HTTP headers recommended on the header() man
> page, such as
> 
> header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
> header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
> header("Cache-Control: no-store, no-cache, must-revalidate");
> header("Cache-Control: post-check=0, pre-check=0", false);
> header("Pragma: no-cache");
> 
> These don't seem to have the effect that I'm looking for.  Someone else
> on the list suggested storing a session variable that basically says
> "this page  has been filled out, do not do anything if it has been
> resubmit" which is a good idea, but I was hoping to have the user
> automatically re-routed to an error page if they hit the "back" button.
> (The session variable idea won't work until they refresh a page or
> submit a form, because they will be returning to a page in their
> history.)
> 
> 
> Erik
> 
> 
> 
> ----
> 
> Erik Price
> Web Developer Temp
> Media Lab, H.H. Brown
> [EMAIL PROTECTED]
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to