警告:session_start():尝试使用日语字符破坏PHP 5.4上的未初始化的会话错误

时间:2016-01-24 08:38:13

标签: php session oscommerce multibyte

我有一个标准的oscommerce安装,当会话变量包含多字节字符(例如日语)时,它会创建错误“Warning:session_start():尝试销毁未初始化的会话”。堆栈跟踪没有解释导致问题的原因,除了它是由以下语句中的会话类文件引起的:

...
return session_start();

错误是由这样的变量引起的:

$shipping['method'] = {Japanese character string}

tep_start_session('shipping');

...然后在每个后续页面加载时都会遇到错误。

任何想法都非常感谢!

1 个答案:

答案 0 :(得分:0)

原来这是由oscommerce中一个复杂的原因引起的。我在其他国际网站上发现了同样的错误,因此我认为我会发布答案,因为其他地方讨论的信息很少。

许多变量存储在会话中,可以存储在MySQL数据库中。

因此,必须将MySQL数据库中“会话”表的排序规则更改为utf8_general_ci,以便在数据库存储的会话中正确存储和检索多字节字符。