Preventing a form submission would require client-side scripting and would be browser specific.
Here's what I do instead.
Let's say that you have to retrieve data from a user in two parts -- on the first page the user inputs his name and on the second he inputs his address.
I would write name.php so that when it is invoked, it examines $_POST for input field names "lastname" and "firstname". If both do not exist, the script assumes that it was handed no input and produces the input form. That form's "action=" setting is name.php, so the form submits back to the script that created the form.
Should the user enter a firstname and lastname and submit the form, name.php inserts the data into either the database or a session variable, then uses header("Location:...."

to redirect the browser to address.php.
Address.php words similarly to name.php. If it does not find a "street" and "city" form input in $_POST, it produces the input form. Otherwise it processes the input and uses header("Location:..."

to redirect the browser to another page in the site.
With this method, the user does not stay on a page anywhere that might allow him to resubmit the data on a refresh.
It's not necessary to have the form produced by name.php submit back to itself. You would have 4 scripts, name_form.php, name_process.php, address_form.php and address_process.php. Name.php produces a form which will submit to name_process.php. Name_process.php will, if there is input, process the input and redirect to address_form.php or, if there is no input, redirect back to name_form.php. And so on.
It's also possible to have error messages sent back and forth between the various scripts using session variables.
Want the best answers? Ask the best questions: TANSTAAFL!!