这几天我遇到了一个令人困惑的问题。我在 session 数组中存储了一个包含 10 - 50 个元素的数组。
$_SESSION['my_array'] = erg_array;
然后我将表单提交到另一个页面。在新页面上,我读取了数组,数组中只剩下几个元素。有时数组中有 2 个或 3 个或 4 个元素。
如果我查看服务器上的 session 文件,文件中的数组不完整。在页面末尾,我检查了数组
print_r($_SESSION['my_array']);
并且将打印 50 个元素。那是最后一行代码。在我的 session 服务器文件中只存储了 3 个元素。
有人知道去哪里找吗?
编辑:
如果我像这样序列化我的数组
$_SESSION['my_array_string'] = base64_encode(serialize($_SESSION['my_array'));
在另一个脚本上
$_SESSION['my_array'] = unserialize(base64_decode($_SESSION['my_array_string']));
阵列完成了吗?
最佳答案
我建议您在序列化之前将 $_SESSION['my_array'] 数组存储在变量中。像这样……
$array[] = $_SESSION['my_array']; 这里的数组存储在数组变量中,现在将该数组序列化到新 session 中。
$_SESSION['my_array_string'] = base64_encode(序列化($array[]));
这可能会解决您的问题。
关于php - 数组在 PHP session 中不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29621707/