Для предотвращения обновления страницы будет полезен файл cookie; Чтобы проверить пустые поля, isset ()
<?php
//in the top of the page, BEFORE every output!
if(isset($_COOKIE['givemeaname'])){
setcookie('givemeaname', 'some foo&bar data, maybe a timestamp?', time()+3600);
//now check the mandatory fields and
//do whatever you want with your db
}else{
//do nothing, the page is been refreshed!
}
//do whatever you have to do now!
?>
Если вы не хотите перемещать код db-about в верхнюю часть страницы, при проверке файлов cookie вы можете оценить булеву переменную, а затем просто проверить ее ... выберите свой путь.
Вместо куки вы можете использовать сеанс, если вам удобнее ... но поведение должно быть ясным;)
Это решение сэкономит вам все время, даже если вы попадаете на страницу с формой POST, некоторые браузеры запрашивают повторную отправку информации при появлении запроса на обновление страницы (и ленивые пользователи обычно нажимают «да» без читать или понимать, что это значит;)