Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как увеличить время сессии в админке?


Recommended Posts

Здравствуйте, постоянно, выкидывает из админки через незначительный промежуток времени, нет возможности даже заполнить один товар. Подскажите, пожалуйста, как можно решить этот вопрос? Ocstore 2.3.0.2.3. Связано ли это с настройками хостинга?

Надіслати
Поділитися на інших сайтах


Выкидывает прямо насильно что ли? Сидишь заполняешь - и бах, просит пароль?

Информация в консоли к этому отношения не имеет.

Змінено користувачем Gorman
Надіслати
Поділитися на інших сайтах

8 минут назад, rukol сказал:

в консоли выводит следующее

oc-err.thumb.jpg.6d21f9addcee50b02a627f67e11604bf.jpg

 

Просто необходимо в ajax запрос добавить async: false 

Это только чтобы избавится от ошибки, но это не решение проблемы..

Змінено користувачем Гість
Надіслати
Поділитися на інших сайтах

3 минуты назад, Gorman сказал:

Выкидывает прямо насильно что ли? Сидишь заполняешь - и бах, просит пароль?

Информация в консоли к этому отношения не имеет.

Выкидывает, по прошествии небольшого промежутка времени (в пределах 1-2 мин) если пытаюсь загрузить фото или сохранить товар. Сохранить или загрузить фото, получается, только если сильно не задерживаться с заполнением данных товара

Надіслати
Поділитися на інших сайтах


попробуйте в футтер админки добавить:

 

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

и в корне магазина создайте ping.php

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

 

Надіслати
Поділитися на інших сайтах

56 минут назад, rukol сказал:

Связано ли это с настройками хостинга?

да

Надіслати
Поділитися на інших сайтах

25 минут назад, Gorman сказал:

Проверьте хорошо, работаете с одной вкладки/окна браузера?

Спасибо, было открыто несколько вкладок магазина, вроде перестало вылетать

Надіслати
Поділитися на інших сайтах


Пожалуйста. 

 

В футер тогда ничего не вставляйте, что Вам коллега сверху написал.

Логика такая: когда Вы входите в админку и отправляете на сервер имя пользователя/пароль, сервер проверяет их на существование и на правильность. Если он убеждается, что все ок - он отдает Вам своеобразный временный пароль, токен. Выглядит как хвост URL-a (например, token=XACTyA8eiRdfV8QuBlhopsjRM22dFjxe).
Теперь любые действия с админкой, будь то переходы по вкладкам, создание товара или что-либо еще, будут верифицироваться с помощью этого временного пароля.

То есть, при каждом Вашем переходе сервер будет думать "Я отдал им вот такой токен (пароль), посмотрим, что они мне возвращают", и смотрит на этот хвост. Если он не совпадает - он просит Вас войти еще раз.

 

Отсюда рождаются такие ситуации: на нескольких вкладках у вас стоят разные токены, и Вы каждый раз вводите сервер в заблуждение, посылая ему не тот токен, который он Вам отдал последний раз. При этом он просит войти еще раз, генерирует новый токен - и теперь все ваши старые страницы, который только что работали, имеют старый недействительный токен. И так по кругу :)

 

В общем, много вкладок использовать можно, но следите, чтобы токен у всех вкладок был одинаковый.

Змінено користувачем Gorman
  • +1 1
Надіслати
Поділитися на інших сайтах

9 минут назад, Gorman сказал:

В футер тогда ничего не вставляйте, что Вам коллега сверху написал.

Можете вставить, время сессии будет дольше жить.

Надіслати
Поділитися на інших сайтах

8 минут назад, ibond сказал:

Можете вставить, время сессии будет дольше жить.

А если не вставлять в футер этот код, то где прописано время сессии?

Надіслати
Поділитися на інших сайтах


Если ничего не меняли, то обычно сессия живет 24 минуты (1440 секунд), что прописано в php.ini, конфигурационном файле, который дефолтный и хранится чаще всего у хостера.

Если у вас в папке с сайтом такой файл (php.ini) есть, то найдите строку session.gc_maxlifetime, посмотрите значение, разделите на 60  - получите время жизни сессии в минутах.

Можно поиграться с настройками, но только в том случае, если реально мешает работе.

Код в футер может помочь, но реально это костыль. И коллега, объясните зачем мы ставим сессионную переменную 'last_ping', где-то дергать будем ее потом?

 

 

Змінено користувачем Gorman
  • +1 1
Надіслати
Поділитися на інших сайтах

10 минут назад, Gorman сказал:

И коллега, объясните зачем мы ставим сессионную переменную 'last_ping', где-то дергать будем ее потом?

А зачем ее дергать?

Надіслати
Поділитися на інших сайтах

9 минут назад, Gorman сказал:

А зачем ее ставить? Я может что-то упустил.

Чтобы заставить PHP обновить файл cookie на стороне сервера.

Надіслати
Поділитися на інших сайтах

8 minutes ago, ibond said:

Чтобы заставить PHP обновить файл cookie на стороне сервера.

:-D Это кто вас там научил делать?

Сессионная кука хранится до закрытия браузера, если не задано другое в php.ini session.cookie_lifetime . Можете прямо сейчас зайти и ручками посмотреть срок действия PHPSESSID в той же админке.

Время жизни сессий, определяемое в session.gc_maxlifetime, определяет время, когда они будут удаляться с серверной части, причем тут идентификатор сессии вообще.

Надіслати
Поділитися на інших сайтах

3 минуты назад, Gorman сказал:

если не задано другое в php.ini session.cookie_lifetime

вы же сами ответили на свой вопрос

Надіслати
Поділитися на інших сайтах

на некоторых хостах сессионная папка чистится не по времени модификации, а по времени создания, или даже так, бывает что tmp и пакак хранения сессий находятся в одном пространстве, приходит чистильщик tmp и все подряд удаляет, и здесь процесс жизни сессии никак не подвластен настройкам.

  • +1 2
Надіслати
Поділитися на інших сайтах

44 минуты назад, Gorman сказал:

Если ничего не меняли, то обычно сессия живет 24 минуты (1440 секунд), что прописано в php.ini, конфигурационном файле, который дефолтный и хранится чаще всего у хостера.

Если у вас в папке с сайтом такой файл (php.ini) есть, то найдите строку session.gc_maxlifetime, посмотрите значение, разделите на 60  - получите время жизни сессии в минутах.

Можно поиграться с настройками, но только в том случае, если реально мешает работе.

Спасибо. Файл есть, строку нашёл. Здесь понятно, не понятно вот что:

1) Почему "поиграться с настройками" можно только в том случае, если мешает? Какие могут быть побочные эффекты от увеличения срока жизни сессии?

2) Имею чёткое и ясное впечатление, что время непрерывной работы в админке разное. Иногда очень долго можно не выходить из админ-панели и всё нормально, а иногда через каких-то минут 10 не сохраняются правки, потому что при попытке сохранить предлагают вводить пароль.

Почему время работы не стабильно, если оно прописывается в файле php.ini?

Надіслати
Поділитися на інших сайтах


4 минуты назад, chukcha сказал:

или даже так, бывает что tmp и пакак хранения сессий находятся в одном пространстве, приходит чистильщик tmp и все подряд удаляет, и здесь процесс жизни сессии никак не подвластен настройкам.

Воно как, значиться:o

Надіслати
Поділитися на інших сайтах


1 minute ago, florapraktik said:

Спасибо. Файл есть, строку нашёл. Здесь понятно, не понятно вот что:

1) Почему "поиграться с настройками" можно только в том случае, если мешает? Какие могут быть побочные эффекты от увеличения срока жизни сессии?

2) Имею чёткое и ясное впечатление, что время непрерывной работы в админке разное. Иногда очень долго можно не выходить из админ-панели и всё нормально, а иногда через каких-то минут 10 не сохраняются правки, потому что при попытке сохранить предлагают вводить пароль.

Почему время работы не стабильно, если оно прописывается в файле php.ini?

1.

Просто лазить в конфиги без лишней надобности не нужно, это такой хороший закон :) Особенно когда не полностью понимаешь, что там происходит. Если мешает - тогда стоит разобраться. Иногда хостер вообще не принимает изменения в ваших php.ini себе, что в целом оправдано.

2.
а) Следите за доп вкладками
б) Выше написал товарищ все верно, иногда с хостинга вычищают все сессии под замес, и Вашу не устаревшую тоже. Если хостер гибкий, то можно подумать что с этим делать

  • +1 2
Надіслати
Поділитися на інших сайтах

10 минут назад, Gorman сказал:

...

ОК, спасибо, понятно.

 

10 минут назад, chukcha сказал:

Ну... мой модификатор как бы немного исправляет это..

 

Опять же, при условии ПРАВИЛЬНОЙ настройки хостинга (так написано в описании).

Если не сложно, мне для общего развития интересно:

Если можно просто увеличить значение session.gc_maxlifetime, то зачем модуль?

Как я понял, в случае определённых настроек хостинга ни одно из этих средств одинаково не поможет?

Змінено користувачем florapraktik
Надіслати
Поділитися на інших сайтах


Как вариант, если позволяют настройки, перенести паку сессий под "свое" крыло
Куда нибудь, выше DOCUMENT_ROOT

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.