Я предполагаю, что мой вопрос заключается в понимании обработки $_POST.
Итак, у меня есть две страницы, которые обрабатывают 2 формы. Страница 1 запрашивает некоторую информацию, которая будет использоваться на странице 2. При отправке действие формы использует ту же страницу, а затем перенаправляет на следующую страницу после проверки, но обрабатывает данные только тогда, когда переменная $_GET ?usersubmit=1.
<form action="<?=$_SERVER['PHP_SELF']?>?usersubmit=1" method="post" name="form1">
<input type="text" name="field1">
</form>
Итак, скажем, у меня есть страница с именем form1.php. После отправки он отправляется на form1.php?usersubmit=1. Теперь страница присваивает опубликованные данные переменным сеанса, а затем перенаправляет на form2.php через header('location:form2.php').
<?
if($_GET['usersubmit']){
if($_POST['field1']){
#if valid then assign session variable and redirect to next form
$_SESSION['field1'] = $_POST['field1'];
header("location:form2.php");
}else{
#if invalid send error message
$error = true;
}
}
?>
Моя проблема заключается в том, что пользователи нажимают кнопку «Назад» в своем браузере, чтобы редактировать данные из предыдущей формы. Браузер не публикует эти данные повторно, он просто показывает им пустую форму. Я бы предпочел не использовать данные $_SESSION для заполнения форм, потому что я подозреваю, что метод повторной публикации может быть более быстрым и менее проблематичным решением.
Я также попробовал перенаправление javascript вместо заголовка, но браузеры достаточно умны, чтобы не отправлять вас обратно на страницу, которая хочет перенаправить вас, чтобы она не работала.
любая помощь в понимании этого будет принята с благодарностью. благодаря.