我有一个标准的oscommerce安装,当会话变量包含多字节字符(例如日语)时,它会创建错误"警告:session_start():试图销毁未初始化的会话"。 堆栈跟踪并没有揭示导致问题的原因,除了它是在以下语句的会话类文件中引起的:
...
return session_start();
错误是由如下变量引起的:
$shipping['method'] = {Japanese character string}
tep_start_session('shipping');
。然后在每次后续页面加载时都会遇到错误。
任何想法都非常感谢!
事实证明,这是由oscommerce中的一个复杂原因引起的。我在其他国际网站上注意到了同样的错误,因此我想我会发布答案,因为其他地方讨论的信息很少。
许多变量存储在会话中,这些会话可能存储在MySQL数据库中。
因此,将MySQL数据库中"会话"表的排序规则更改为utf8_general_ci以允许在数据库存储会话中正确存储和检索多字节字符至关重要。