从序列化cookie获取关联数组

时间:2012-07-24 20:36:11

标签: php

阵列内部细节内的任何细节都不会影响安全性,使用本网站的人将使用最新的网络浏览器,以防您在考虑辩论安全问题。

我尝试了多种方法来收集使用标准序列函数序列化的数组,这就是我使用的:

        $mooring = serialize($mooring);
        setcookie("mooringdata", $mooring, time()+3600);

我已经检查了我的cookie管理器,它似乎成功地存储了我需要的细节,但看起来它已被url编码。我已经尝试了多种从存储的cookie中获取原始数组的方法,但它从不可以正常工作,即使我的代码说它应该也可以!

我已经尝试了以下代码块,用换行符分隔以表示另一次尝试:

$data = unserialize(urldecode($_COOKIE['mooringdata'])));
print_r($data);

返回空白。

$data = array(unserialize(urldecode($_COOKIE['mooringdata']))));
print_r($data);

返回“Array([0] =>)” 如果有替代方法可以在不使用GET或POST的情况下将数组从一个页面传递到另一个页面,我会全力以赴,但如果您认为有解决方案,请回复!

1 个答案:

答案 0 :(得分:1)

对于初学者来说,它会在将cookie放入$_COOKIE之前对其进行自动解码,因此理论上只需要unserialize($_COOKIE['mooringdata'])即可。但是你可能应该使用$_SESSION来存储这些数据,这样浏览器就不必经常来回发送数据。