Таблица oc_session

Таблица oc_session является системной таблицей, которая отвечает за хранение данных активных сессий. Каждая сессия соответствует одному посетителю сайта (как зарегистрированному пользователю, так и гостю) и позволяет временно сохранять данные между запросами.

Поля

Поле Тип данных Описание
session_id varchar(32) Уникальный идентификатор сессии (Session ID). Генерируется при первом визите пользователя и хранится в cookies браузера.
data text Данные сессии в сериализованном виде. Здесь хранится содержимое корзины, данные для авторизации, временные данные формы и другая служебная информация.
expire datetime Время истечения срока действия сессии. По этому времени система определяет, нужно ли удалять сессию как устаревшую.

Как это работает

При первом посещении сайта для браузера пользователя генерируется уникальный session_id, который сохраняется в cookie. Этот идентификатор передается с каждым запросом к серверу. Сервер, получив идентификатор, находит соответствующую запись в таблице oc_session и загружает все сохраненные данные сессии (поле data) в память.

В течение сессии в этих данных хранится критически важная для работы магазина информация:

Поле expire обновляется при каждом обращении к сессии. Стандартное время жизни сессии в OpenCart обычно составляет 3600 секунд (1 час). Если в течение этого времени пользователь не совершает никаких действий на сайте, его сессия истекает и удаляется системой очистки (cron). При этом содержимое корзины и другие временные данные будут потеряны.

Для зарегистрированных пользователей, которые авторизовались в системе, важные данные (например, содержимое корзины) часто привязываются к учетной записи и могут восстанавливаться при новой сессии.

Пример SQL-запроса

Посмотреть активные сессии и их данные можно следующим запросом:

sqlSELECT session_id, expire, data
FROM oc_session
WHERE expire > NOW()
ORDER BY expire DESC;

Очистка устаревших сессий (обычно выполняется автоматически через cron):

sqlDELETE FROM oc_session WHERE expire < NOW();

Смотрите также

  • таблицу oc_customer,
    которая хранит данные зарегистрированных пользователей
  • таблицу oc_cart,
    которая в некоторых версиях может хранить корзину пользователя