Как сохранить пользовательский ввод из формы php в сессии php - PullRequest
1 голос
/ 27 июня 2019

Я хотел сохранить список пользователей из формы 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>

Я ожидалчтобы список лиц, которых я отправил, возвращался из массива, но каждый раз, когда я отправляю, последняя отправка заменяет первую.

1 Ответ

1 голос
/ 27 июня 2019

Вы перезаписываете массив каждый раз:

 $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>

Я не скомпилировал код, проверьте синтаксисошибки, но процедура правильная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...