Время жизни сессии не работает ?

  • 11 Ответов
  • 276 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

FIORD_CMS

  • ***
  • 115
  • 3
У меня есть сомнения в работоспособности параметра "время жизни сессии", установленного в значение 30.
Почему возникли сомнения ? Я вижу, что некоторые зарегистрированные пользователи находятся в статусе online по нескольку дней, а число гостей (незарегистрированных) - сотни (во много раз больше, чем дают счетчики посещений). На основании этого я делаю вывод, что сессии для этих пользователей вообще не прерываются.

Не исключаю, что я чего-то не понимаю. Просьба помочь либо в понимании ситуации либо в ее решении. Спасибо.
« Последнее редактирование: 18.12.2016, 13:11:22 от FIORD_CMS »

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #1 : 16.12.2016, 18:12:55 »
например открыли вкладку в браузере, и не закрывают ее. сессия поддерживается автоматически при этом. 30 минут начнется после закрытия браузера. а число гостей - это боты, большинство из которых которых счетчики вообще не видят
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Re: Время жизни сессии не работает ?
« Ответ #2 : 16.12.2016, 18:44:21 »
Не вижу причин для паники, хотя доля правды, наверное, есть. Если я зашел на сайт - создается запись в таблице сессий и, собственно, сама сессия. Когда я в следующий раз я запрошу у сервера страницу, и при этом буду авторизован, эта запись просто обновится. Но есть один момент - PHP определяет, какую именно сессию нужно запустить, по имени куки, передаваемом браузером в заголовке запроса, либо по идентификатору сессии в адресной строке. Браузер же, в свою очередь, получает эту куку или идентификатор от сервера, куда его помещает функция session_start(). А теперь камень - если время жизни куки в браузере истекло, он не будет передан в запросе, а значит PHP не сможет определить, какую сессию нужно запустить, и расценит это как создание новой сессии. Таким образом в базе будут висеть открытые ранее сессии. И на высоконагруженных сайтах размер базы будет распухать пропорционально новым запросам к серверу.

Признаться, я не знаю, существует ли механизм удаления таких подвисших сессий, но, как задал вопрос ТС, он не работает. Поэтому самому было бы интересно разобраться в этом вопросе. Если не работает - можно написать плагин или просто отдельный скрипт, который будет запускаться по крону и чистить таблицу сессий по выставленным в админке критериям.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #3 : 16.12.2016, 18:46:41 »
таблица чистится автоматически.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Septdir

  • *******
  • 2138
  • 106
  • JoomlaZen
Re: Время жизни сессии не работает ?
« Ответ #4 : 16.12.2016, 20:06:42 »
У юзеров еще хранится userid так что тут с дублями проблем нет, что же до гостей, лично авто очистики не видел, но проблем в распуханием таблицы до адовый размеров не было, так что думаю она все же есть.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #5 : 16.12.2016, 20:11:50 »
есть есть, не сомневайтесь :) никаких проблем с сессиями в Joomla нет. да и ТС собственно про другое спрашивал.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Septdir

  • *******
  • 2138
  • 106
  • JoomlaZen
Re: Время жизни сессии не работает ?
« Ответ #6 : 16.12.2016, 20:15:57 »
есть есть, не сомневайтесь :) никаких проблем с сессиями в Joomla нет. да и ТС собственно про другое спрашивал.
Нет проблемы есть. Просто они не на каждом сайте, да и не всегда. Помню обновил как-то сайт на 3.x + так он сессию не держал принципиально до сл. обновы.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #7 : 16.12.2016, 20:20:08 »
это скорее проблемы индивидуальных особенностей конкретного сайта и конкретного обновления, а не проблемы Joomla :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Septdir

  • *******
  • 2138
  • 106
  • JoomlaZen
Re: Время жизни сессии не работает ?
« Ответ #8 : 16.12.2016, 20:21:46 »
это скорее проблемы индивидуальных особенностей конкретного сайта и конкретного обновления, а не проблемы Joomla :)
Ну на сайте стоит Joomla и обновление Joomla + раньше работало = проблема Joomla
Хотя на самом деле с сесиями частенько проблемы, а писать их логику мозг разрывается.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #9 : 16.12.2016, 20:53:38 »
ну ок :) я не спорю, само собой какие то проблемы могут возникать. но просто тут даже вопрос в другом у ТС
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

capricorn

  • *******
  • 1634
  • 106
Re: Время жизни сессии не работает ?
« Ответ #10 : 16.12.2016, 21:34:01 »
это похоже на ожидаемое поведение Joomla для залогинившихся зарегистрированных пользователей которые находятся на странице со стандартной формой логина. если на другой то сессия должна окончиться.

JHtml::_('behavior.keepalive');

http://joomlaforum.ru/index.php?topic=147295.0

*

dmitry_stas

  • ********
  • 9615
  • 929
Re: Время жизни сессии не работает ?
« Ответ #11 : 16.12.2016, 23:16:20 »
Почему только
Цитировать
для залогинившихся зарегистрированных пользователей которые находятся на странице со стандартной формой логина
? Стандартно keepalive подключается в модуле логина. Т.е. если выведен модуль логина - то сессия поддерживается на любой странице где он выведен. Поддерживается она не только для залогинившихся, а для всех. Но очень часто keepalive подключается вообще кем угодно и где угодно. Например, некоторые интернет-магазины подключают его везде, чтобы товары в корзине не пропали после 15 стандартных минут. И т.д.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций