No, because if they click the refresh button (or back/forward, whatever) the browser will attempt to POST again. What you want is the Post/Redirect/Get paradigm. Note that this will only prevent duplicate submissions via navigation. If you want to prevent duplicate submissions from multiple clicks of a form submission, you have to use javascript to disable the button in some way during the post attempt.
Some code:
<?php
if ('POST' == $_SERVER['REQUEST_METHOD']) {
//do processing
//303 forces a GET request
header("Location: thank-you-page", true, 303);
exit;
}
else {
//handle bad page visit.
}
?>