Авторизовался, три минуты на сайте, и вылетел как неавторизованный 1.10.3

#1 15 января 2014 в 11:33
Здравствуйте дорогие друзья! Версия системы 1.10.3, пользователи жалуются, что при написании длинного комментария вылетают как неавторизованные, такая же беда с действиями в админке, модули переставил — жмешь сохранить, и опа, опять окно авторизации. Из советов форума нашел только решение от смены IP, но на продолжительность сессии это не влияет. Причем не зависит от активности, вылет может быть непредсказуемым. В какую сторону копать?
#2 15 января 2014 в 12:21
Попробуй увеличить время сессии в файле: core/cms.php
Там в начале файла выставляется время сессии, поставь вместо трех минут сколько нужно.
#3 15 января 2014 в 16:15
В каком каком файле?
#4 15 января 2014 в 16:41
Gumoff, Извиняюсь, поправил!
#5 16 января 2014 в 22:43
Алфей, Спасибо за подсказку! А какие значения вы сами используете? Ставил на час, так в модуле "кто онлайн" пользователи по часу висели в онлайне, хотя некоторые просто закрывали браузер без выхода.
#6 17 января 2014 в 13:35
Я ставлю минут 15-20
#7 19 января 2014 в 21:23
1. подскажите, где это?
2. удаление кукис time()-3600 выставлено. Как увеличить время хранения? time()-7200? не могу понять логику. мне кажется из-за этого происходит разлогин, когда долго пишешь пост.
#9 20 января 2014 в 01:09


Андрей, мне вот это помогло instantcms.ru/forum/thread14631.html девятый пост смотри

Saw

что-то странное с этим кодом происходит)

1. если меняю на return true; то при смене IP-адреса — вышибает с сайта и сервера (у меня VPS). Стоит сменить IP снова, но не заходить на сайт, а подключиться по ssh — пускает. Два раза попробовал. Видимо IP переходит в блокировку. Не понятно только, почему на весь сервер это влияет.

2. самое странное, что после того, как я вернул код на месте. Попробовал сменить IP-адреса — и теперь уже разлогина не произошло. Видимо от времени сессии тоже что-то зависит. Пойду попробую время кукис поменять.
#10 20 января 2014 в 01:21
нет, с кукис вроде там порядок.

а 3 минуты нашел в файле user.class.php. не то?
#11 20 января 2014 в 17:40

а 3 минуты нашел в файле user.class.php. не то?

Андрей
мне не помогло, попробуй


что-то странное с этим кодом происходит)

Андрей
Делал на 1.10.1 — 1.10.2 — 1.10.3 и без проблем работает, может ты где чего напутал? проверь ещё раз мало ли.
#12 20 января 2014 в 19:24

Делал на 1.10.1 — 1.10.2 — 1.10.3 и без проблем работает, может ты где чего напутал? проверь ещё раз мало ли.

Saw

нее, что-то идет не так с новым ip… и при попытке пинга сайта — General failure.
#13 21 января 2014 в 19:57
Значит, получается, в версии 1.10.3 в файле /core/classes/user.class.php можно сменить время пользователя онлайн. В 1.10.2 этот параметр в core/cms.php,

Андрей, мне вот это помогло instantcms.ru/forum/thread14631.html девятый пост смотри

Saw
Это тоже для 1.10.2, в 1.10.3 код другой, что здесь нужно убрать, для отмены проверки смены IP?
  1. // привязка ip адреса к сессии
  2. if(!$this->checkSpoofingSession()){
  3. $this->logout();
  4. cmsCore::redirectBack();
  5. }
  6.  
  7. $user_id = (int)(isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : 0);
Так как все равно, бывают периодические вылеты...
И как подметил
Андрей

удаление кукис time()-3600 выставлено. Как увеличить время хранения? time()-7200 ?

Андрей
стоит ли затрагивать этот параметр, и в какую сторону происходит увеличение?
#14 21 января 2014 в 22:03


Значит, получается, в версии 1.10.3 в файле /core/classes/user.class.php можно сменить время пользователя онлайн. В 1.10.2 этот параметр в core/cms.php,

Aleks Shultz

у вас же 1.10.3 и вы выше писали, что помогло…
#15 21 января 2014 в 23:04
Для 1.10.3
В файле /core/classes/user.class.php находите вот это -

  1. private function checkSpoofingSession() {
  2.  
  3. // первый раз зашли
  4. if(!isset($_SESSION['user_net'])) {
  5. $octets = explode('.', $_SERVER['REMOTE_ADDR']);
  6. $_SESSION['user_net'] = rtrim($_SERVER['REMOTE_ADDR'], end($octets));
  7. return true;
  8. }
  9.  
  10. return mb_strstr($_SERVER['REMOTE_ADDR'], $_SESSION['user_net']);
  11.  
  12. }
и меняете на это -

  1. private function checkSpoofingSession() {
  2. return true;
  3. }
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.