如何在需要时确保我的PHP会话变量存在?

时间:2013-10-02 16:10:14

标签: php session-variables

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

无论如何,我们将非常感谢任何建议。

感谢您抽出宝贵时间阅读,祝您度过愉快的一天。 : - )

2 个答案:

答案 0 :(得分:2)

检查它们的存在如下:

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

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