【问题标题】:How to store user input from php form in php session如何在php会话中存储来自php表单的用户输入
【发布时间】:2019-11-09 09:12:00
【问题描述】:

我想在 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>

我希望我提交的人员名单会从 大批 但是每次我提交时,最后一个提交都会替换第一个。

【问题讨论】:

  • 感谢您对此提供的任何帮助
  • 我用完整的解决方案更新了下面的代码。

标签: php session post


【解决方案1】:

您每次都在覆盖数组:

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

我没有编译代码,检查语法错误,但程序是正确的。

【讨论】:

  • 非常感谢,只有一个语法错误,它运行良好
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 2011-08-09
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多