0

我只是对这里的最佳实践感到好奇......

我有一个用户填写的多页表单。目前,我将表单数据存储在会话变量中。

如果用户打开一个新选项卡来填写相同的表单,但细节略有不同,则 2 个选项卡会相互冲突。

我的想法是在填写表单的新请求时生成一个 uniqueid,然后将其保存在?id=uniqueidURL 中的 var 中,以便我可以跟踪他们填写的表单。

然后在PHP中,根据...添加/编辑/修改会话数据$_SESSION[uniqueid]['formdata']...

只是想知道是否有人对此有任何其他解决方案?

4

1 回答 1

0

可能会根据表单阶段分配一个 ID,以防止用户无意中篡改 URL。

$_SESSION['form1'] = $_POST;

如果用户打开一个新选项卡,或稍后返回表单,您可以根据设置的会话密钥将他们带到表单的正确阶段。或者,如果您使用多维数组:

$_SESSION['form']['form1'] = ...;
...
$_SESSION['form']['form2'] = ...;

您可以计算会话表单数组以获取他们填写的最新阶段。

if (isset($_SESSION['form']))
{
    $currentFormId = 'form' . count($_SESSION['form']);
}

根据表单的用途,您可能希望在提交最后阶段时取消设置会话表单键。

于 2013-04-15T01:27:15.827 回答