Раньше я сталкивался с этой проблемой, как мы решили, что нужно поместить все поля в сеанс, а затем перенаправить обратно в form.php, используя header ("Location: form.php");
Когда данные были отправлены в форму, мы сохранили $ _REQUEST в $ _SESSION ['post'];если проверка не удалась, мы отправили ее обратно в форму, заполнили поля и удалили сеанс.
Так, например,
$_SESSION['post']['field_a'] = $_REQUEST['field_a'];
$_SESSION['post']['field_b'] = $_REQUEST['field_b'];
С некоторыми причудливыми соглашениями об именах вы можете просто зациклить этоупростите процесс.
Затем на странице формы мы просто проверили, есть ли какие-либо данные, или просто отображаем эти данные независимо.
$str_field_a = @$_SESSION['post']['field_a'];
...
<input name="field_a" value="<?php echo $str_field_a; ?>" />
...
unset($_SESSION['post']);
Это, вероятно, грязный способделать это, но это оказалось эффективным для наших целей.Просто думал, что поделюсь.