我怎样才能确保我的PHP会话变量在我需要它们时就在那里


How can I make sure my PHP session variables are there when I need them?

我正在处理一个包含 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 之前,如何确保会话数据仍然存在?我想检索每个新部分的会话变量并将它们作为隐藏字段添加到下一个部分表单中,但我不确定这是否是一个好主意。

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

感谢您抽出宝贵时间阅读,祝您有美好的一天。

像这样检查它们的存在:

if(isset($_SESSION['varName')) { // do something }

也许使用标志(flags是一个想法,而不是技术学或comand(

//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 上建立标志,然后激活每个部分以了解用户在哪里。