My sarcastic reply was for Nick. Using GET instead of POST is a stupid solution.
The error you get comes from your browser, who has been instructed (either by you through the browser settings, or by the remote server through headers) not to cache any output generated by POST operations.
This is a good thing (even though you might disagree) because it forces the broswer to allways request the page. Thus making sure it allways has the correct data in it.
A quote from the annotations in the manual:
-- quote --
Everyone who is having problems with cacheing in PHP4 ("Data Missing" error in Netscape for example) and didn't get this error in PHP3 should set session.cache_limiter = public (in php.ini). If set to nocache, php4 sends no-cache headers, which wasn't the case in php3 (because there's was no native session support).
-- end quote --
What I meant about printing the form is exactly that: print the form again.
This is very helpfull if you have a form with required fields, and someone forgets to fill a field. After the post, check the data, and if any is missing, print the form again, with all the correct data in place, and a nice error message for the missing field.