Я пытаюсь сохранить значения из нескольких форм в переменной $_POST
. Формы находятся на разных страницах и из того, что я могу понять из теста, который я сделал, когда я отправляю значения из формы, они "перезаписывают" значения, которые уже в $_POST.
Вот пример того, что я пытаюсь сделать:
Страница 1 - форма 1
<?php
session_start();
?>
<form method="post" action="page2.php">
First name : <input type="text" name="firstName" required ><br/><br/>
Last name : <input type="text" name="lastName" required ><br/><br/>
<input type="submit">
</form>
Страница 2 - форма 2
<?php
session_start();
?>
<form method="post" action="page3.php">
Age : <input type="text" name="age" required ><br/><br/>
City : <input type="text" name="city" required ><br/><br/>
<input type="submit">
</form>
Page 3 - результаты
<?php
session_start();
echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';
echo $_POST['age'].'<br/>';
echo $_POST['city'].'<br/>';
?>
Последняя страница показывает мне только "возраст" и "город". Значения из первой формы на стр. 1 теперь не определены. Вот пример полученного результата:
Notice: Undefined index: firstName on line 4
Notice: Undefined index: lastName on line 5
65
Нью-Йорк
в page2.php поместите это
<input type="hidden" name="firstname" value="<?=$_POST['firstname']?>">
<input type="hidden" name="lastname" value="<?=$_POST['lastname']?>">
Вы также можете использовать переменные сеанса:
//Страница 1
<?php
session_start();
$_SESSION['user'] = array();
$_SESSION['user']['firstName'] = $_POST['firstName'];
$_SESSION['user']['lastName'] = $_POST['lastName'];
?>
//Страница 2
<?php
session_start();
$_SESSION['user']['age'] = $_POST['age'];
$_SESSION['user']['city'] = $_POST['city'];
?>
//Результат
<?php
session_start();
echo $_SESSION['user']['firstName'];
echo $_SESSION['user']['lastName'];
echo $_SESSION['user']['city'];
echo $_SESSION['user']['age'];
?>
Как я вижу в приведенном выше коде, вы пытаетесь отправить данные в два разных файла.
<form method="post" action="page2.php">
Это страница действий как page2.php.
<form method="post" action="page3.php">
Здесь вы отправляете данные на страницу3.php
И вы пытаетесь получить доступ
echo $_POST['firstName'].'<br/>';
echo $_POST['lastName'].'<br/>';
в page3.php, который вы перешли на страницу2.php. Определенно это не будет работать, как вы можете получить доступ к значениям, представленным через форму на странице действий лишь формы.