Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> PHP Warning: session_start(): Failed to decode se
AndrewFi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42143
На форуме: 1 год, 13 дней
Карма:




Доброе время суток уважаемые эксперты.
С некоторых пор возникли проблемы с сессиями.
А точнее при переходе на php 5.5.
PHP Warning: session_start(): Failed to decode session object. Session has been destroyed in .....
Сессии хранятся в БД. Уже более пяти лет не возникало никаких проблем.
Использую Ubuntu dedicate server- mysql 5.6.27 - Apache/2.4.7 (Ubuntu) - PHP Version 5.5.9.

Часть настроек:
<IfModule mod_php5.c>
php_admin_flag display_errors off
php_admin_flag log_errors off
php_admin_flag register_argc_argv on
php_admin_flag register_long_arrays on
php_admin_flag register_globals off
php_admin_flag session.bug_compat_warn on
php_admin_flag session.bug_compat_42 on
php_admin_value session.auto_start 0
php_admin_value session.use_only_cookies 0
#php_admin_value session.serialize_handler php
php_admin_value session.save_handler user
php_admin_value session.gc_probability 1
php_admin_value session.gc_divisor 100
php_admin_value session.use_cookies 1
</IfModule>


Структура таблицы:

CREATE TABLE `gsmb2b`.`user_session` (
`session_id` varchar(80) NOT NULL,
`session_data` longtext,
`session_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`session_user` int(10) unsigned DEFAULT NULL,
`session_ip` bigint(20) unsigned NOT NULL,
`session_country` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Логи БД показывают, что данные записываются и читаются корректно.
Чувствую что ПХП не может преобразовать прочитанные данные БД.
Причем ошибка носит какой-то плавающий характер....

Долблюсь уже второй день. Жду ваших советов

Это сообщение отредактировал AndrewFi - 24.11.2015 - 01:12
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









А какие данные ты в сессии хранишь?
Говорят, что такое может быть если сохранять в сессию строки в мультибайтовой кодировке.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AndrewFi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42143
На форуме: 1 год, 13 дней
Карма:




Цитата (Guest @ 24.11.2015 - 02:10)
А какие данные ты в сессии хранишь?
Говорят, что такое может быть если сохранять в сессию строки в мультибайтовой кодировке.

Данные могут быть произвольные. $_SESSION есть $_SESSION.
Что я только не делал. Даже при записи - чтении использовал base64_encode - base64_encode.
Все тоже самое. Причем ошибка какая-то "плавающая".
При замене session.save_handler user на files - все ОК, но мне надо user (хранить в БД)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




AndrewFi, строку с ошибкой покажите и данные в момент ошибки . Источников может быть несколько, например при serialize_handler
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AndrewFi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42143
На форуме: 1 год, 13 дней
Карма:




Цитата (icedfox @ 24.11.2015 - 07:04)
AndrewFi, строку с ошибкой покажите и данные в момент ошибки . Источников может быть несколько, например при serialize_handler

Сделал, чтобы при чтении-записи создавался лог данных в файле.
Заметил, что при чтении данных сессии из БД часть данных заменлась всякой кракозяброй, хотя переданные данные на запись в БД - в порядке.
Кодировка клиента и бд - utf8.

Непонятно, в чем дело

Файл с логом я прилагаю

Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/


collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |


Это сообщение отредактировал AndrewFi - 25.11.2015 - 05:03

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  session.txt
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 23 дня
Карма: 13




AndrewFi с большой долей вероятности проблема с кодировкой, перепроверьте сами файлы, плюс возможно есть операции , в которых желательно указывать кодировку, такие как mb_..... например

Цитата (AndrewFi @ 25.11.2015 - 06:53)
Заметил, что при чтении данных сессии из БД часть данных заменлась всякой кракозяброй, хотя переданные данные на запись в БД - в порядке.

Проверьте эти такие данные тут же в базе, в каком виде они там хранятся.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AndrewFi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42143
На форуме: 1 год, 13 дней
Карма:




Цитата (icedfox @ 25.11.2015 - 11:46)
AndrewFi с большой долей вероятности проблема с кодировкой, перепроверьте сами файлы, плюс возможно есть операции , в которых желательно указывать кодировку, такие как mb_..... например

Цитата (AndrewFi @ 25.11.2015 - 06:53)
Заметил, что при чтении данных сессии из БД часть данных заменлась всякой кракозяброй, хотя переданные данные на запись в БД - в порядке.

Проверьте эти такие данные тут же в базе, в каком виде они там хранятся.

Данные на сервере хранятся нормально. Проблема, которая была обнаружена в файле лога, это что при чтении с БД это кракозябры вылазят. Соответственно при старте сессии невозможно нормально декодировать данные и все накрывается.

заметил (там же в логе), что нормально не декодируются объекты (данные класса).
Пробовал перед записью-чтением данных БД самостоятельно кодировать-декодировать (например base64_decode base64_encode) - результат тот же.

Странно, что несколько лет работало без всяких проблем. С использованием session.save_handler files - проблем нет
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса