You need to ignore the check when somebody presses the submit button. You'll also need to get rid of the session variable when they navigate away form the page (you cannot ensure this will happen because the user can simply type in a new URL.)
<?php
// page you do not want refreshing on.
session_start();
if ( isset($_POST['YourSubmitButton']) ) {
//do not check session when button pushed.
unset($_SESSION['refresh']);
}
elseif ($_SESSION['refresh'])
{
echo "You have already submitted data";
exit;
} else {
$_SESSION['refresh']==true;
}
// all other pages
session_start();
unset($_SESSION['refresh']);
?>
Possibly not "the solution" but it should point you in the right direction hopefully.