2016-01-24 2 views
0

У меня есть стандартная установка oscommerce, и когда переменная сеанса содержит многобайтовый символ, такой как японский, он создает ошибку «Warning: session_start(): Попытка уничтожить неинициализированную сессию ». Трассировки стека не проливает много света на то, что вызывает проблемы, за исключением того, что вызывается в файле класса сессии на следующее утверждение:Предупреждение: session_start(): попытка уничтожить неинициализированную ошибку сеанса на PHP 5.4 с японскими символами

... 
return session_start(); 

Ошибка вызвана переменной, как это:

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

tep_start_session('shipping'); 

... а затем ошибка возникает при каждой последующей загрузке страницы.

Любые идеи очень ценятся!

+0

С чего начать? – ClearBoth

+0

Сессия загружается в application_top.php на каждой странице: tep_session_start(); $ session_started = true; – user3481238

+0

Я должен подчеркнуть, что эта проблема возникает только тогда, когда в переменной есть японские символы, в противном случае. – user3481238

ответ

0

Это оказалось вызвано сложной причиной в oscommerce. Я заметил ту же ошибку на других международных веб-сайтах, и поэтому думал, что отправлю ответ, поскольку информация о нем очень мало обсуждается в другом месте.

Многие переменные хранятся в сеансах, которые могут храниться в базе данных MySQL.

Поэтому важно изменить настройку таблицы сеанса в базе данных MySQL на utf8_general_ci, чтобы обеспечить правильное хранение и извлечение многобайтовых символов в хранимых сеансах базы данных.

Смежные вопросы