В OpenCart время сессии определяет, как долго пользователь может оставаться авторизованным на сайте, не вводя логин и пароль повторно. По умолчанию, время сессии установлено на 24 минуты, что может быть недостаточным для пользователей, которые проводят на сайте длительное время. Поэтому, настройка времени сессии может улучшить пользовательский опыт и повысить безопасность данных.

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

Как изменить время сессии в OpenCart?

Настройка через файл php.ini

Если речь о настройках на сервере, открываем файл php.ini, и редактируем следующие параметры:

session.gc_maxlifetime = 86400
session.cookie_lifetime = 0

* где параметр gc_maxlifetime указывает на временя в секундах, после прошествии которого данные могут быть удалены; cookie_lifetime — время жизни файлов cookies; 86400 — 24 часа в секундах.
* если параметру gc_maxlifetime задать значение 0, действие сессий будет бесконечным. Это, как правило, не стоит делать — приведет к падению производительности и безопасности сервера.

После настройки параметров, необходимо перезагрузить сервер, являющийся интерпретатором PHP.


Настройка через файл .htaccess

В файл .htaccess вносим следующее:

php_value session.gc_maxlifetime 86400
php_value session.cookie_lifetime 0

* как можно заметить, параметры те же, что при настройки через php.ini.


Настройка через файл index.php

Открываем файл index.php, и в самом начале после тега <?php новой строкой добавляем следующий код

ini_set('session.gc_maxlifetime', 86400);
ini_set('session.cookie_lifetime', 0);
session_set_cookie_params(0);

Функции обязательно вызывать до открытия сесии (session_start).


Время сессии по-правильному надо изменять в настройках вашего сервера, но если вдруг у вас нет возможности/желания это сделать, или те способы не работают, и все равно сбрасывается авторизация при добавлении/редактировании товаров

1.в корне сайта создаем файл ping.php

2.В этот файл пишем

<?php
   session_start();
   $_SESSION['last_ping'] = time();
?>

3. открываем файл футера админ панели admin/view/template/common/footer(.tpl/.twig)

4.вставляем туда в самое начало, следующий код:

<script type="text/javascript">
function pingServer() {
    $.ajax({ url: "/ping.php" });
}
$(document).ready(function() {
    setInterval('pingServer()', 60000);
});
</script>

Это может помочь предотвратить потерю данных при работе в административной панели.

Итак, увеличение времени сессии в opencart — это простой способ улучшить опыт пользователей и защитить данные на вашем сайте. Измените время сессии в соответствии с вашими потребностями, но не забывайте о безопасности и производительности вашего сайта.

От Антон Баринов

Я Антон, php программист, люблю и специализируюсь на OpenCart с 2009г. Разрабатываю интернет-магазины и улучшаю их SEO. Обращайтесь https://t.me/barinovshop

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нужна разработка, создание или доработка интернет-магазина OpenCart(Опенкарт)? Пишите!

Время работы: в будни 7:00 - 17:00 (По Московскому времени)

Email: contact@opencart-cms.ru