Я хотел сохранить список пользователей из формы php в сеансе php Я определил пустой массив в начале сеанса и попытался собирать имена пользователей при каждой отправке.
session_start();
$persons=array();
if (isset($_POST)) {
$_SESSION['val']=$_POST['val'];
$persons=$_SESSION['val'];
}
foreach($persons as $d){
echo $d;
echo '</br>';
}
<form action = "exam.php" method = "post">
Enter a new Person: <input type = "text" name = "val">
<input type = "submit" name = "send">
</form>
Я ожидал, что представленный мной список лиц вернется из множество но каждый раз, когда я отправляю, последний отправляет заменяет первый.
Я обновил свой код ниже полным решением.






Вы перезаписываете массив каждый раз:
$persons = $_SESSION['val'];
Чтобы отправить данные в массив в php, вы должны сделать это следующим образом:
$persons[] = $_SESSION['val'];
Если вы хотите сохранить всех людей в сеансе, не перезаписывая их каждый раз, когда вам сначала нужно проверить, существует ли сеанс, если нет, создайте его.
if (!isset($_SESSION['persons'])){
$_SESSION['persons'] = array()
}
А затем измените способ хранения информации в сеансе, например:
$_SESSION['persons'][] = $_POST['val'];
Затем вы можете сделать:
foreach($_SESSION['persons'] as $d){
echo $d;
echo '</br>';
}
Таким образом, код будет выглядеть так:
session_start();
$persons=array();
if (!isset($_SESSION['persons'])){
$_SESSION['persons'] = array();
}
if (isset($_POST)) {
$_SESSION['persons'][] = $_POST['val'];
}
foreach($_SESSION['persons'] as $d){
echo $d;
echo '</br>';
}
<form action = "exam.php" method = "post">
Enter a new Person: <input type = "text" name = "val">
<input type = "submit" name = "send">
</form>
Код не компилировал, проверял на синтаксические ошибки, но процедура правильная.
Действительно, спасибо, всего с одной синтаксической ошибкой все заработало нормально
Я ценю любую помощь в этом