【发布时间】:2018-12-22 02:53:29
【问题描述】:
用户登录后,我序列化用户对象并将其存储在他的会话中,就像这样
$_SESSION['User'] = serialize($this);
所以我可以在进一步的步骤中更快地访问他的数据。
现在,有时用户无法保持登录状态,因为他们的会话在下一个页面请求时立即被破坏。我发现这是因为用户存储在他的数据中的特殊字符。例如。在一种情况下,通知中有一些甜蜜的困难
s:72:"♥ Aufsicht ♥ <br>...;"
在另一种情况下,电话号码是从 Apple 联系人中复制的,等等。 在会话中存储是否有限制,例如仅 ASCII 字符?我是否必须将整个字符串转换为另一种格式,例如Base64?或者如何最好地处理这个? 谢谢。
【问题讨论】:
-
你的网站是 UTF-8 的吗?
-
会话真的被设置了吗?你有任何错误吗?请发布一个最小的演示示例。
-
是的,请给我们一个现实的例子。该字符串不能为 72 字节长。
-
是的,网站都是 UTF-8 格式。会话设置正确,可以很好地与很多用户一起使用。而字符串只是大字符串中的一小部分,只是用特殊字符来说明的部分。嗯,我试着举个例子..
-
1.您不必对放入
$_SESSION的数据进行预序列化,这是会话处理程序的工作。 2.仍然没有理由导致您描述的行为。
标签: php session serialization special-characters