2010-06-11 105 views
2

我在使用php会话时遇到了一些麻烦..我想我已经找到了原因,似乎当我设置会话变量时,它正在复制整个SimpleXMLElement对象而不仅仅是存储在所述对象中的值。我如何确保将值存储在会话变量中?PHP会话问题,复制对象,而不仅仅是价值

下面是一些代码片段:

$records = $listingNums->RecordCount->Returned[0]; 
$_SESSION['test'] = 'green'; 
$_SESSION['saleRecords'] = $records; 
for($x=0;$x<count($listingNums->ListingNumber);$x++){ 
    $_SESSION['saleNumbers'][$x] = $listingNums->ListingNumber[$x]; 
} 

所以,如果我只是将它们设置后转储会话变量出来,他们似乎确定。但是当我回到页面时,他们没有设置。测试=绿色我设置试图看看我是否可以获得任何会话变量的工作,并保存到下一页。

我的会话保存路径是可写的,并将其写入了以下工作:

测试| S:5: “绿色”; saleRecords | O:16: “的SimpleXMLElement”:1:{我:0; S:1: “6”;} saleNumbers |一个:6:{I 0,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2736176”;} I:1,O: 16: “的SimpleXMLElement”:1:{I:0; S:7: “2733979”;} I:2,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2733522”;} I:3,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2715680”;} I:4,O:16: “的SimpleXMLElement”:1:{I:0; S:7 “2708179”;} I:5,O:16: “的SimpleXMLElement”:1:{I:0; S:7: “2673739”;}}

另外会话被记住的,而变量是当我设置回到页面,但除了测试之外,它们看起来都是空的。

我希望有足够的信息,我非常感谢任何帮助!

谢谢!

回答

1

未经检验的答案,但你既可以将其转换为XML,或将其转换为字符串

作为字符串(并转换记录阵列以及):

$records = $listingNums->RecordCount->Returned[0]; 
$_SESSION['test'] = 'green'; 
$_SESSION['saleRecords'] = (array)$records; 
for($x=0;$x<count($listingNums->ListingNumber);$x++){ 
    $_SESSION['saleNumbers'][$x] = (string)$listingNums->ListingNumber[$x]; 
} 

由于XML:

$records = $listingNums->RecordCount->Returned[0]; 
$_SESSION['test'] = 'green'; 
$_SESSION['saleRecords'] = (array)$records; 
for($x=0;$x<count($listingNums->ListingNumber);$x++){ 
    $_SESSION['saleNumbers'][$x] = $listingNums->ListingNumber[$x]->asXML(); 
} 
+0

谢谢!这是如此简单:) 非常感谢你的快速回答! – christine 2010-06-11 07:39:06

相关问题