The way round this is to make the original form the output of a program. The form results get sent back to the same program. If all is well then a nice confirmation notice is returned. Otherwise the program can output the original form with all the user's valid entries as defaults. This technique might be foiled if the browser caches the original form.