在cakephp3中使用多字节进入会话时,session_start()不成功

时间:2015-10-10 08:14:48

标签: php cakephp multibyte cakephp-3.1

最近我开始使用cakephp3.1,我收到了下面的错误。

  

警告(2):session_start():试图销毁未初始化的会话[CORE / src / Network / Session.php,第324行]

     

警告(2):session_start()[function.session-start]:无法解码会话对象。会话已被销毁[CORE / src / Network / Session.php,第324行]

     

警告(2):session_start()[function.session-start]:无法发送会话缓存限制器 - 已发送的标头(输出从/ home / www / service / vendor / cakephp / cakephp / src / Error / Debugger开始.php:742)[CORE / src / Network / Session.php,第324行]

当我将多字节字设置到会话中时,例如登录用户的名字是日语或者多字节字设置为闪存,它就会发生。

所以我假设我没有安装mbstring扩展。但是已经安装了。

3 个答案:

答案 0 :(得分:1)

这通常是由于会话存储无法处理多字节字符而发生的。如果存储是一个mysql数据库,那么设置

字符集指向 utf8

整理 utf8_general_ci

保存会话数据的字段解决了这些问题。

答案 1 :(得分:0)

使用base64_encode() 这可能对您使用多字节字符串很有用 我将它用于印地语。

答案 2 :(得分:0)

将数据库编码设置为utf8_general_ci