如何从冲突中保护当前的表单会话

时间:2013-01-20 23:04:43

标签: php forms session-variables multi-step

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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

我用隐藏的输入传递了表单名称。