如何保护当前表单会话免受冲突


How to protect current form sessions from Conflict

我有一个有3个步骤的表单。我使用SESSIONS来保持每一步的值。当我在另一个选项卡中打开相同的表单并完成第一步时,它立即替换了另一个表单中的Session值。

那么我如何创建带有附加到特定表单的字段值的会话呢?我需要避免Session冲突。

如果表单确实不同,则将其放入多维数组中:

$_SESSION['register']['field1']=$_POST['field1'];
$_SESSION['contact']['field1']=$_POST['field1'];

如果它是相同的表单,它只是一个新的选项卡,你可以检查之前设置的值,忽略它,设置一个标志,说有一个表单提交正在进行中,或者完全删除旧的会话值,使新选项卡中的新表单没有附加值。

我使用这个函数来处理表单输入:

function Hold_Form_Input($formname)
    {
    $FormPost = array();
        foreach ($_POST as $key => $entry)
            {
                $FormPost[$key]= $entry;
            }
     $_SESSION[$formname]= $FormPost;           
    }

我通过一个隐藏的输入传递表单名