【发布时间】:2015-04-06 09:31:21
【问题描述】:
我目前正在创建一个带有名称和值的 cookie(序列化的对象数组):
include_once './Model/Winkelwagenitem.php';
$winkelwagenProduct = array (
//aantal + ID
new WinkelwagenItem(1,257),
new WinkelwagenItem(3,258),
new WinkelwagenItem(1,259)
);
$cookie_name = "winkelwagen";
$cookie_value = serialize($winkelwagenProduct);;
setcookie($cookie_name, $cookie_value);
//echo "Data to be stored (serialized): ".$cookie_value."<br>";
if(!isset($_COOKIE[$cookie_name])){
echo "Cookie not being set";
} else {
echo "cookie created";
}
一切顺利。现在在另一个 php 文件中,我访问了这个 cookie,我需要反序列化它并返回 cookie 中的对象:
if(isset($_COOKIE["winkelwagen"])){
echo "Deze cookie (".$_COOKIE["winkelwagen"].") bestaat";
foreach ($_COOKIE["winkelwagen"] ....){
.....
unserialize(....)
....
}
} else {
echo "deze cookie bestaat niet";
}
我真的不知道 foreach 循环中必须包含什么?
请帮忙?
【问题讨论】:
-
$_COOKIE["winkelwagen"]只包含一个值,为什么需要循环,为什么不只是unserialize( $_COOKIE["winkelwagen"] )? -
更多对象待添加
-
如何向 cookie 中的同一个键添加更多对象?如果您的意思是向序列化数组中添加更多内容,那没关系,您将在未序列化后对其进行迭代
-
就像@adeneo 所说,如果您的价值不是一个价值。尝试先检查它,您需要一个函数来首先检查您的数据类型。检查我的答案,也许你对那个功能有所了解。 :)
标签: php arrays cookies serialization