我需要在 cookie 中存储一些数组数据,我一直在研究最好的方法来做到这一点,很多人似乎说使用serialize
是要走的路,但在这个线程中:
PHP如何字符串化数组并存储在cookie中
..有人建议不要使用它,因为“序列化将调用序列化类的构造函数。这很糟糕,因为它可能会导致代码执行。”
所以我想知道我还有什么其他选择?关于什么base64_encode
?
我不能使用sessions
因为我需要在浏览器关闭后保留数据;虽然我也担心Cookies4KB
limit.
FWIW 我正在存储某人购物车中存储的购物车数据,当他们回来时需要将其重新加载到他们的购物车中。
如何生成一个唯一的 ID,将其存储在 cookie 中,并将序列化数组和 ID 存储在数据库中?
Example:
// ------------ STORING TO COOKIE AND DATABASE ------------ //
$id = uniqid();
setcookie("id", $id, time()+60*60*24); // 1 day
$serialized = serialize($array);
mysql_query("INSERT INTO yourTable (id, array) VALUES ('$id', '$serialized')");
// ------------ SELECTING FROM DATABASE ------------ //
if(!isset($_COOKIE['id'])) die();
$id = mysql_real_escape_string($_COOKIE['id']);
$result = mysql_query("SELECT array FROM yourTable WHERE id = $id LIMIT 1");
if(!is_resource($result)) die();
$serialized = mysql_result($result, 0);
$array = unserialize($serialized);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)