I have found many sites that describes PRG, but no simple PHP code example.
Here's what I implemented:
- The
form.phphas an action:validate.php. - The
validate.phpis never seen by the user; if validates all$_GETand, if valid writes it to database and generates the HTML of a confirmation page / if not valid, it generates the HTML of an error page explaining what is wrong. - Whichever HTML is generated get stored in a
$_SESSIONvariable and thenvalidate.phpcallsheader('Location: <as appropriate>);. - The
submitted.phpofinvalid_input.php(in case the user reads the URL) consists only ofecho $_SESSION['form_html'];.
That seems to me like protection against both page reload and back button problems.
Did I goof by trying to reinvent the wheel?