Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

Edited by Gorman
Link to post
Share on other sites
Guest
8 минут назад, rukol сказал:

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

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

 

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

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

Edited by Guest
Link to post
Share on other sites
3 минуты назад, Gorman сказал:

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

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

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

Link to post
Share on other sites

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

 

<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();
?>

 

Link to post
Share on other sites
56 минут назад, rukol сказал:

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

да

Link to post
Share on other sites
25 минут назад, Gorman сказал:

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

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

Link to post
Share on other sites

Пожалуйста. 

 

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

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

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

 

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

 

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

Edited by Gorman
  • +1 1
Link to post
Share on other sites
9 минут назад, Gorman сказал:

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

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

Link to post
Share on other sites
8 минут назад, ibond сказал:

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

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

Link to post
Share on other sites

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

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

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

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

 

 

Edited by Gorman
  • +1 1
Link to post
Share on other sites
10 минут назад, Gorman сказал:

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

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

Link to post
Share on other sites
9 минут назад, Gorman сказал:

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

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

Link to post
Share on other sites
8 minutes ago, ibond said:

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

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

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

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

Link to post
Share on other sites
3 минуты назад, Gorman сказал:

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

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

Link to post
Share on other sites

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

  • +1 2
Link to post
Share on other sites
44 минуты назад, Gorman сказал:

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

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

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

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

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

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

1 minute ago, florapraktik said:

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

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

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

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

1.

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

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

  • +1 1
Link to post
Share on other sites
10 минут назад, Gorman сказал:

...

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

 

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

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

 

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

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

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

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

Edited by florapraktik
Link to post
Share on other sites

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.