Php 从单个表单接收帖子并添加到单独的会话数组

Php 从单个表单接收帖子并添加到单独的会话数组,php,Php,我在申请过程中有几个阶段,包括不同页面上的多个表单 我已经创建了一个会话来处理数据 我的问题是,在没有明确规定每个表单字段表单的情况下,我可以将表单post逐个添加到会话数组的单个部分 所以当我在结尾时,我可以循环并打印?我有点不清楚,但我想你是说你想要一个包含每个页面中所有表单变量的单一数组。像这样的事情应该可以做到: if( !isset($_SESSION['form_data']) ) { $_SESSION['form_data'] = array(); } $_SESSI

我在申请过程中有几个阶段,包括不同页面上的多个表单

我已经创建了一个会话来处理数据

我的问题是,在没有明确规定每个表单字段表单的情况下,我可以将表单post逐个添加到会话数组的单个部分


所以当我在结尾时,我可以循环并打印?

我有点不清楚,但我想你是说你想要一个包含每个页面中所有表单变量的单一数组。像这样的事情应该可以做到:

if( !isset($_SESSION['form_data']) ) { 
     $_SESSION['form_data'] = array();
}
$_SESSION['form_data'] = array_merge($_SESSION['form_data'], $_POST );
您可以将其作为处理每个页面上提交的代码,当然,最后一个页面可以循环通过$\u SESSION['form\u data']

请注意,任何具有相同名称的表单字段在每次使用时都将被覆盖。所以如果你的名字在第一页,名字在第二页。第2页的name值将在数组中结束


为了安全起见,即使在将输入数据放入会话之前,您也应该检查输入数据。

当然,您可以这样做:

foreach($_POST as $key => $value)
    $_SESSION['form'][$key] = $value;
这将把所有POST数据保存到$\u SESSION['form']数组中。请注意,它保存了所有数据,恶意用户只需向其中添加值即可

在最后一页上,您可以像这样回显字段,不要忘记转义值,这就是htmlspecialchars的用途


编辑:array\u merge方法比这一种更为优雅,所以请忘记第一段代码。

谢谢!非常有用!因此,我可以在每个页面上发布这篇文章,其中包含相应的$_SESSION['form']更改。
foreach($_SESSION['form'] as $key => $value)
    echo htmlspecialchars($key) . ": " . htmlspecialchars($value) . "<br />\n";