Очистка сессий opencart
В OpenCart 3.Х и 4.Ч сессии клиентов хранятся в базе данных, и если вы хотите сбросить (очистить) все сессии клиентов, это можно сделать несколькими способами:
Способ 1: Очистка сессий через базу данных
— Зайдите в панель управления хостингом (например, cPanel).
— Откройте phpMyAdmin или аналогичный инструмент для работы с БД.
— Выберите базу данных, которую использует ваш OpenCart.
— Найдите таблицу, которая называется примерно так:
oc_session
(Если вы меняли префикс при установке, то может быть yourprefix_session)
— Выполните SQL-запрос
TRUNCATE TABLE `oc_session`;
Это удалит все текущие сессии клиентов.
⚠️ Важно: после этого все пользователи, которые были авторизованы на сайте, будут разлогинены.
🛠 Способ 2: Удаление устарших сессий по времени
Если вы хотите очистить только устаршие сессии (например, старше 24 часов), выполните следующий SQL-запрос:
DELETE FROM `oc_session` WHERE expire < UNIX_TIMESTAMP();
Этот запрос удалит только те сессии, время жизни которых уже истекло.
📝 Дополнительно: Автоматическая очистка
OpenCart сам удаляет устаршие сессии при каждом запуске, но если вы хотите регулярно чистить их, можно создать cron-задачу или написать php-скрипт, которые будут выполнять SQL-запрос выше по расписанию.
Вот простой PHP-скрипт, который очищает все сессии клиентов в OpenCart 3.Х и 4.Х, подключаясь к базе данных и удаляя записи из таблицы oc_session.
Создаем файл 📝 clear_sessions.php
<?php
// Настройки подключения к базе данных (взять из config.php вашего OpenCart)
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost'); // обычно localhost
define('DB_USERNAME', 'your_db_user'); // заменить на ваше имя пользователя БД
define('DB_PASSWORD', 'your_db_pass'); // заменить на пароль
define('DB_DATABASE', 'your_db_name'); // заменить на имя вашей базы данных
define('DB_PREFIX', 'oc_'); // префикс таблиц, может быть другим
try {
// Подключение к БД
$dsn = "mysql:host=" . DB_HOSTNAME . ";dbname=" . DB_DATABASE . ";charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
$pdo = new PDO($dsn, DB_USERNAME, DB_PASSWORD, $options);
// Очистка всех сессий
$stmt = $pdo->prepare("TRUNCATE TABLE `" . DB_PREFIX . "session`");
$stmt->execute();
echo "✅ Все сессии клиентов успешно удалены.";
} catch (PDOException $e) {
die("❌ Ошибка подключения или выполнения запроса: " . $e->getMessage());
}
?>
🔧 Как использовать:
Откройте файл config.php вашего OpenCart и найдите параметры подключения
define('DB_HOSTNAME', '...');
define('DB_USERNAME', '...');
define('DB_PASSWORD', '...');
define('DB_DATABASE', '...');
define('DB_PREFIX', '...');
Скопируйте эти значения в скрипт выше.
Сохраните файл как clear_sessions.php.
Залейте его на сервер через FTP в любую папку, например /admin/tools/.
Откройте в браузере:http://вашсайт.ru/admin/tools/clear_sessions.php
После выполнения вы увидите сообщение:
✅ Все сессии клиентов успешно удалены.
Важно:
- Этот скрипт разлогинивает всех пользователей, включая администратора.
- Не оставляйте этот файл на боевом сервере надолго — удалите его после использования.
- Для регулярной очистки лучше использовать cron.
Share this content:



Отправить комментарий