序列化对象中的特殊字符正在破坏PHP会话

时间:2018-07-13 17:13:20

标签: php session serialization special-characters

用户登录后,我将用户对象序列化,并将其存储在他的会话中,就像这样

$_SESSION['User'] = serialize($this);

因此,在以后的步骤中,我可以更快地访问他的数据。

现在,有时用户无法保持登录状态,因为下一个页面请求会立即破坏其会话。我发现这是由于用户将特殊字符存储在他的数据中。例如。在一种情况下,通知中有一些甜言蜜语

s:72:"♥ Aufsicht ♥ <br>...;"

在另一种情况下,从Apple联系人中复制了电话号码,依此类推。 在会话中是否有存储限制,例如仅ASCII字符?我是否必须将整个字符串转换为另一种格式,例如Base64?或如何最好地处理? 谢谢。

1 个答案:

答案 0 :(得分:0)

非常感谢Sammitch的评论:问题是预序列化。如果我只是将对象分配给$_SESSION就像

$_SESSION['User'] = $this;

对象的字段包含这些字符没问题