在cookie中存储数组

Bre*_*ett 4 php arrays cookies

我需要在cookie中存储一些数组数据,我一直在研究最好的方法,很多人似乎都说使用serialize是要走的路,但是在这个帖子中:

PHP如何在cookie中字符串化数组和存储

..有人建议不要使用它作为"serialize将调用序列化类的构造函数.这很糟糕,因为它可能导致代码执行."

所以我想知道我还有其他选择吗?怎么样base64_encode

我无法使用,sessions因为我需要在浏览器关闭后保留数据; 虽然我也担心Cookies 4KB限制.

FWIW我正在存储某人购物车中存储的购物车数据,当他们回来时需要将它们装回购物车.

Nik*_* K. 5

如何生成唯一ID,将其存储在cookie中,并将序列化数组和ID存储在数据库中?

例:

// ------------ 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);
Run Code Online (Sandbox Code Playgroud)