簡體   English   中英

當我需要它們時,如何確保我的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 }

可能使用標志(標志是一個想法,不是技術或命令)

//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上設置標志,然后激活每個部分以了解用戶位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM