php и серилизация данных

12
R
На сайте с 21.12.2024
Offline
9
373

Здравствуйте, подскажите пожалуйста переодически вылезает сообщение о том, что какой-то из классов не серелизуется, как можно это побороть? отловить не получилось (

поиск предлагает  ['allowed_classes' => false] - на сколько это правильно? но это не работает

речь идет о файле отвечающем за хранение сессий в OC3

public function read($session_id) {
                $file = DIR_SESSION . 'sess_' . basename($session_id);

                if (is_file($file)) {
                        $handle = fopen($file, 'r');

                        flock($handle, LOCK_SH);

                        $data = fread($handle, filesize($file));

                        flock($handle, LOCK_UN);

                        fclose($handle);

                        return unserialize($data);
                } else {
                        return array();
                }
        }

или подскажите пожалуйста как отловить ошибку?

ошибка появляется в simplecheckout при смене города

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#1

Сессии в ОС3 хранятся в БД по умолчанию. Вы изменяли настройку на файлы?

ошибка появляется в simplecheckout при смене города

Поддоменов на сайте нет по городам?

В логах должно быть что-то, если вызывает не так или варнинг или фатал.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Жорик
На сайте с 11.09.2006
Offline
206
#2
Rashp :
подскажите пожалуйста как отловить ошибку?

Хорошо бы привести точный текст ошибки.

R
На сайте с 21.12.2024
Offline
9
#3

сессии хранятся в файлах 

поддоменов нет

в логах:  Notice: unserialize(): Error at offset 3077813 of 7405568 bytes in  /webroot/system/library/session/file.php on line 20

свободного места на сервере - 50 гб

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#4

Моё предложение:

Перевести сессии в БД как это задумано изначально

ИЛИ

Взять более новый файл: opencart/upload/system/library/session/file.php at master · opencart/opencart там хранение идёт в JSON

opencart/upload/system/library/session/file.php at master · opencart/opencart
opencart/upload/system/library/session/file.php at master · opencart/opencart
  • opencart
  • github.com
A free shopping cart system. OpenCart is an open source PHP-based online e-commerce solution. - opencart/opencart
R
На сайте с 21.12.2024
Offline
9
#5
LEOnidUKG #:

Моё предложение:

Перевести сессии в БД как это задумано изначально

ИЛИ

Взять более новый файл: opencart/upload/system/library/session/file.php at master · opencart/opencart там хранение идёт в JSON

в бд это вообще мне кажется не вариант, тормозить будет по черному, ради прикола можно конечно попробовать

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#6
Rashp #:

в бд это вообще мне кажется не вариант, тормозить будет по черному, ради прикола можно конечно попробовать

Нет. Наоборот ВСЕГДА и ВСЕ делают в БД, это не просто так. В файлах основная проблема в блокировках записи, в БД и Redis и т.д. этих проблем нет.

У вас кто-то ДОГАДАЛСЯ изменить на файлы, вот и получаем проблемы.

У бегета например, целая статья и функция для сессий есть: Блокировка сессии в PHP – Beget

R
На сайте с 21.12.2024
Offline
9
#7
LEOnidUKG #:

Нет. Наоборот ВСЕГДА и ВСЕ делают в БД, это не просто так. В файлах основная проблема в блокировках записи, в БД и Redis и т.д. этих проблем нет.

У вас кто-то ДОГАДАЛСЯ изменить на файлы, вот и получаем проблемы.

У бегета например, целая статья и функция для сессий есть: Блокировка сессии в PHP – Beget

ну ок, перевел на БД, но фронт валится на 500 ну с 500 вывел, а вот заказы перестали оформляться еще какая-то хрень с API вылезла (

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#8
Rashp #:

ну ок, перевел на БД, но фронт валится на 500 ну с 500 вывел, а вот заказы перестали оформляться еще какая-то хрень с API вылезла (

У вас там что-то больше проблем, чем просто сессии. Возможно кто-то что-то поломал в ОС3 и это следствия.

R
На сайте с 21.12.2024
Offline
9
#9
LEOnidUKG #:

У вас там что-то больше проблем, чем просто сессии. Возможно кто-то что-то поломал в ОС3 и это следствие

никто ничего не ломал, я сам движок собирал и сервер

ocstore версия 3.0.2

LEOnidUKG
На сайте с 25.11.2006
Offline
1766
#10
Rashp #:

никто ничего не ломал, я сам движок собирал и сервер

ocstore версия 3.0.2

Скачал с оф.сайта, там конфиге как я и говорил, БД прописана:

// Session

$_['session_engine']       = 'db';

$_['session_autostart']    = true;

$_['session_name']         = 'OCSESSID';

Поэтому что-то всё же делали и правили. 


Кэш чистили, модификаторы обновляли?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий