gpt4 book ai didi

php - 在 cookie 中存储数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:18 26 4
gpt4 key购买 nike

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

PHP how to stringify array and store in cookie

..有人建议不要使用它,因为“序列化将调用序列化类的构造函数。这很糟糕,因为它会导致代码执行。”

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

我不能使用 session ,因为我需要在浏览器关闭后保留数据;尽管我也担心 Cookies 4KB 的限制。

FWIW 我正在存储存储在某人购物车中的购物车数据,当他们回来时需要将其加载回他们的购物车。

最佳答案

如何生成唯一 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);

关于php - 在 cookie 中存储数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com