session_start () не приводит к успеху при использовании многобайтовой записи в сеансе в cakephp3

Недавно я начал использовать 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. Однако он уже установлен.


person user1544853    schedule 10.10.2015    source источник
comment
Cannot send session cache limiter - headers already sent (output started at /home/www/service/vendor/cakephp/cakephp/src/Error/Debugger.php:742) - каков результат - это сообщение об ошибке, которое необходимо прочитать и исправить.   -  person AD7six    schedule 12.10.2015


Ответы (3)


Обычно это происходит из-за того, что хранилище сеанса не может обрабатывать многобайтовые символы. Если хранилище является базой данных mysql, тогда установка

Набор символов - utf8

Сопоставление с utf8_general_ci

для таблицы и поля, содержащего данные сеанса, решает эти проблемы.

person Cemal    schedule 18.04.2016

Используйте base64_encode (). Это может быть полезно при использовании многобайтовой строки I Я использую его для языка хинди.

person rb nagar    schedule 10.10.2015

Установите кодировку базы данных на utf8_general_ci

person AndyGrib    schedule 03.03.2016