我想在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>
我希望收到的提交人名单从 数组 但是每次我提交时,最后一个提交都会替换第一个。
答案 0 :(得分: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>
我没有编译代码,没有检查语法错误,但是过程正确。