0

我正在处理一个包含 3 个部分的页面。在第一部分中,其中一个输入是第二部分所需的数字。在第二部分中,输入之一是第三部分所需的数字。当用户在第一部分提交表单时,我将该数字存储在会话变量中,当用户在第二部分提交表单时,我将该数字也存储在会话变量中。每次提交一个部分时,下一个部分及其关联的表单将变为“可见”。

+-----------+
|  My Page  |
+-----------+
| section 1 | -> set section 1 variable needed by section 2 and 3
+-----------+
| section 2 | -> set section 2 variable needed by section 3
+-----------+
| section 3 |
+-----------+

我的问题是,当我将表单数据存储在数据库中时,如何确保我的会话变量仍然存在?假设一个人提交了第 1 部分,然后提交了第 2 部分,然后离开了很长时间,然后回来并尝试提交第 3 部分。或者,用户提交了第 1 部分,然后离开了很长时间,然后回来并尝试提交第 2 节。在尝试数据库 CRUD 之前,如何确保会话数据仍然存在?我想用每个新部分检索会话变量并将它们添加为下一部分表单中的隐藏字段,但我不确定这是否是个好主意。

无论如何,任何建议将不胜感激。

感谢您花时间阅读,祝您有美好的一天。:-)

4

2 回答 2

2

像这样检查它们的存在:

if(isset($_SESSION['varName')) { // do something }
于 2013-10-02T16:12:15.033 回答
0

也许使用标志(标志是一个想法而不是技术或命令)

//first part of code:

if (!isset($_SESSION['firstpart']))
{
     $_SESSION['firstpart'] = false;
     $_SESSION['secondpart'] = false;
     $_SESSION['thirdpart'] = false; 
}


//(and then)
if($_SESSION['firstpart'] == false)
{
   validate first part variables
   do someting to read or say give me first part

   if vars is ok
        $_SESSION['firstpart'] = true;
   else
       $_SESSION['firstpart'] = false;
}

 //validting second part
if($_SESSION['secondpart'] == false)
{
    we can validate an do second part

    and set:
    if vars is ok
        $_SESSION['secondpart'] = true;
   else
       $_SESSION['secondpart'] = false;

}

// and repeat for third part

以及会话中的所有变量,首先将标志设置为 false,然后激活每个部分以了解用户在哪里。

于 2015-01-08T18:54:49.320 回答