Один из способов сделать это - переписать каждое значение, которое только что было отправлено в форму утверждения, в виде скрытых входных данных html. Как это:
<form name="approval" method="post>
<input type="hidden" name="firstname" value="<?php echo htmlspecialchars($_REQUEST['firstname']); ?>" />
<input type="hidden" name="lastname" value="<?php echo htmlspecialchars($_REQUEST['lastname']); ?>" />
...
<input type="submit" value="Approve!" />
</form>
Другие предложили сохранить значения в пользовательской сессии. Если вы решите пойти по этому пути, будьте осторожны с пользователем, который любит работать с несколькими окнами браузера, открытыми одновременно. Их различные формы будут совместно использовать один и тот же сеанс, и в зависимости от того, в каком порядке они выбирают отправку форм, вы можете получить несколько перекрещенных проводов, если ваш код слишком наивен. Одним из способов решения этой проблемы является создание уникального ключа для каждой формы и передача его от страницы к странице. Это, конечно, становится грязным, поэтому я предпочитаю подход скрытого поля формы.
Еще одна ловушка, связанная с подходом к сеансу, - реализация сеанса PHP по умолчанию использует локальную файловую систему для хранения данных сеанса. Это ломается, когда у вас есть избыточные веб-серверы. Конечно, вы можете поменять реализацию сеанса на основе файлов по умолчанию на что-то более сложное (возможно, на основе memcached). Но опять же, это просто сложность. Почему бы не избежать сложности и придерживаться скрытых полей формы?