簡體   English   中英

對象會話未通過

[英]Object Session not being passed

在文件A.php上,我有一個while循環,該循環從數據庫中提取數據並連接到class.php以為每個數據集創建對象。 那部分工作正常。
在該循環中,我嘗試在創建新對象后將每個對象保存到由其ID值定義的SESSION中

文件A.php:

$_SESSION[$pObject->id] = $pObject;

if (isset($_SESSION[$pObject->id]))

{

echo "SESSION $pObject->id is set"; 

}

我已經確認正在創建。

現在,我有一個通過GET將Objects id值發送到File B.php的表單,我確認已收到該值。

文件B.php:

require_once 'class.php';

session_start();

$id = $_GET['id'];

echo $id;

//Now $id is in my new file, so I try to call my SESSION

if(isset($_SESSION[$id]))

{

echo "SESSION $id is set";

$pObjectCurrrent = $_SESSION[$id];

}

else{

echo "SESSION $id is Not set";

}

問題是,盡管文件B.php中的$id等於文件A.php中的$pObject->id的值, $pObject->id文件B.php中的SESSION[$id]尚未設置且沒有任何值。 相反,我收到未定義的變量錯誤。 任何想法將不勝感激。

您不能使用整數作為會話變量名稱。

您可以像這樣設置會話變量:

$_SESSION['obj' . $pObject->id] = $pObject;

然后像這樣從B.php檢索它:

echo $_SESSION['obj' . $id];

本質上,它將ID與字符串連接在一起,因此變量名稱將為“ obj5”,“ obj2”等。

另外-如果您要在會話對象中傳遞大量數據,我建議您研究序列化和將會話數據存儲到數據庫的替代方法。

暫無
暫無

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

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