[Решено] Множатся сессии в БД

Возникла следующая проблема: в таблице prefix_session очень много наплодилось сессий для каждого пользователя при том отличается только session_date_create и иногда IP сессии. При том для этих всех сессий пользователя session_date_last одинаковое, а это создаёт проблему для раздела /people/online, поскольку один пользователь может занимать там аж 25 первых строчок… и таким образом только он будет показан в списке.
В чём может быть проблема?

UPD. Решение 1.
Пока решил следующим образом:
В файле User.mapper.php добавил, то что отмечено:
public function UpdateSession(ModuleUser_EntitySession $oSession) {
		$sql = "UPDATE ".Config::Get('db.table.session')."
			SET
				session_ip_last = ? ,
				session_date_last = ?
			WHERE user_id = ? 
                        AND session_key = ? -- тут
		";
		return $this->oDb->query($sql,$oSession->getIpLast(), $oSession->getDateLast(),
                        $oSession->getUserId(),
                        $oSession->getSessionKey() // и тут
                );
	}

Это позволяет обновлять только текущую сессию пользователя, таким образом остальные копии (дубликаты) сессии пользователя не будут обновлены и не будут мусорить. На только почистить старые сессии из БД.

UPD. Причина.
Причиной послужило то, что когда-то был включён плагин «Remember me», который преобразовывает таблицу сессий. Но после отключения он должен всё вернуть на место, чего по какой-то причине не произошло (из-за неправильного отключения плагина: из файла plugins.dat; или из-за неисправности кода плагина; не могу быть уверен в правильном варианте).
Спасибо, vdenu .

Решение 2 (правильное).
Сделать поле user_id уникальным. Перед этим может понадобится очистить таблицу.

В самом плагине есть такой запрос:
TRUNCATE TABLE `prefix_session`; ALTER TABLE `prefix_session` DROP INDEX `user_id` , ADD UNIQUE `user_id` ( `user_id` );

Мультисессии

Обошел всё сообщество в поиске решения насущной для многих проблемы с сессиями, но не нашел. То есть проблемы, когда например залогинившись с мобильного устройства, сбрасывается сессия в браузере ПК, где мы логинились минуту назад.

Плагин Remember Me(http://goo.gl/Flc8FF) решение несерьезное — есть множество примеров (можно найти в поиске), когда его использование приводило к проблемам. К тому же складировать все сессии пользователей в БД неправильно как-то, слишком много записей. Его я в расчет даже не беру.

Здесь(http://goo.gl/oSzm7G) пользователь предлагал решение, но так как резонанс оно не вызвало, наверное его действительно не безопасно использовать.

Единственное решение, которое просится — это позаимствовать решение этой проблемы у Alto CMS(http://goo.gl/X6Smtp).

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

Мультисессии в Livestreet

Привет, народ!
Есть такой вопрос: как реализовать механизм мультисессий в LS, чтобы при входе с разных устройств сессия не разрывалась и пользователя каждый раз не выбрасывало на авторизацию? В наш век ноутов-планшетов-телефонов эта тема кажется довольно актуальной, в большинстве соц. сетей она давно реализована. Буду благодарен за любые наводки!

HELP. Не прописывается key в кукисах

Добрый день. Столкнулся с проблемой, на чистом ЛС последней версии не прописывается после входа в куках key. PHPSESSID прописывается нормально. Может кто сталкивался с проблемой, в какую сторону копать?

Раскрытие директории в модуле сессий

В LiveStreet CMS последней версии (1.0.2) обнаружена уязвимость, которая раскрывает пути на сервере, связанная с модулем сессий. Ошибка связана с отсутствием проверки типа значения для установки нового id сессии при подмене User Agent.

Читать дальше →

Доступ к $_SESSION из шаблона .tpl

Есть некая глобальная переменная хранящаяся в $_SESSION, как прочитать ее из файла шаблона header_top.tpl.
Передавать из action можно, но данный шаблон используется многими action, соответственно писать один и тот же код, который будет присваивать нужное значение переменной и передавать ее в шаблон, в каждом action не айс.

Ежедневное вознаграждение пользователей за визит

Уважаемые коллеги,

Может кому-то будет полезно описание решения задачи ежедневного вознаграждения пользователей за заход на ЛС-сайт (для версии 1.0.1).
Читать дальше →

Хранение пользовательских сессий

Уважаемые участники сообщества, нужна помощь. Многие пользователи мои жалуются, что сайт не хранит пользовательские сессии, что нудно каждый раз авторизовываться. Скажите пожалуйста, как это можно исправить?
Заранее спасибо!

Голосование для гостей - как исключить накрутки?

Хочу сделать плагин чтобы гости имели возможность голосования за топики и комментарии. Но для этого нужно придумать какой-нибудь нормальный механизм защиты от накруток. Как думаете, какие параметры необходимо запоминать? Может у кого-то есть какие-нибудь наработки в этом направлении?

Авторизация и сессии

Добрый день!
Сегодня столкнулся с проблемой, которую хотелось бы решить. Может кто делал нечто подобное?
Есть:
  1. 2,3,4, вобщем не важно, сколько, главное что несколько, сайтов на LS, имеющих разные поддомены в одном домене. Например: site1.mydomine.ru, site2.mydomine.ru и site3.mydomine.ru.
  2. Для всех сайтов едиными таблицами являются session, user, user_administrator, user_field, user_field_value. Остальные таблицы у каждого сайта свои.
Необходимо:
Сделать так, чтобы авторизованный пользователь переходя с одного сайта на другой оставался быть авторизованным и на втором и на третьем сайтах.
Ломаю голову, с чего начать?