猿问

如何在php会话中存储来自php表单的用户输入

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

我希望从数组中返回我提交的人员列表,但每次提交时,最后一次提交都会替换第一个。


达令说
浏览 106回答 1
1回答

慕婉清6462132

您每次都覆盖数组:&nbsp;$persons = $_SESSION['val'];为了将数据推送到 php 中的数组,您必须这样做:$persons[] = $_SESSION['val'];如果您想要将所有人员存储在会话中,而无需在每次首先需要检查会话是否存在时覆盖它们,如果不存在,则创建它。if(!isset($_SESSION['persons'])){&nbsp;$_SESSION['persons'] = array()}然后更改您在会话中存储信息的方式,例如:$_SESSION['persons'][] = $_POST['val'];&nbsp;然后你可以这样做:foreach($_SESSION['persons'] as $d){&nbsp; echo $d;&nbsp; echo '</br>';}所以代码看起来像:session_start();$persons=array();if(!isset($_SESSION['persons'])){&nbsp;$_SESSION['persons'] = array();}if (isset($_POST)) {&nbsp; $_SESSION['persons'][] = $_POST['val'];&nbsp;}foreach($_SESSION['persons'] as $d){&nbsp; echo $d;&nbsp; echo '</br>';&nbsp; &nbsp;}<form action="exam.php" method="post">&nbsp; Enter a new Person:&nbsp; <input type="text" name = "val">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<input type="submit" name = "send"></form>我没有编译代码,检查语法错误,但是程序是对的。
随时随地看视频慕课网APP
我要回答