Статус Онлайн\Оффлайн

Доброе время суток. Есть одна проблемма и не могу ее решить. Захожу на сайт как пользователь, но статус у меня Оффлайн после Авторизации на сайте. Может пройти минут 15-10 а может и пол часа по разному, после чего только тогда пользователь становится Активным «онлайн». Но может через пару минут опять стать не активным Как сделать, что бы при Авторизации пользователь сразу был Активным в «Онлайне» и после выхода становился не активным ??
Почему так лагает?

17 комментариев

avatar
  • lol
  • 0
avatar
Зачем мне перелинковка «Rewrite»?
avatar
а что не потеми, сори тогда, просто если на сайте будет написано www. и вы зарегистрировались без www, вы будешь Оффлайн.
так что в любом случае пригодится)
avatar
хотя это тоже не по теми кажись, кароче пофигу забейте)
avatar
с «Rewrite» у меня все впорядке и config и .htaccess настроен стабильно. Ок
avatar
Потом сюды livestreet.ru/blog/16131.html
седня написал
  • lol
  • 0
avatar
Ты издеваешся? Название топика читал? СТАТУСОнлайн\Оффлайн а не Авторизация!
avatar
Вполне ясная картина — действительно в LS движке не сразу после выхода из профиля статус ОНЛАЙН у человека пропадает. Хотя последний визит уже отреагировал на тот момент и написал что пользователь столько то n минут как ушёл. Очевидно где то в настройках установлен тайм на обновление статуса.
avatar
avatar
Тогда почему бывает такое что Пользователь ведет топики, отвечает на сообщения но до сих пор виден как Оффлайн после 20-30 минут Авторизации на сайте? Я предпологаю что это значение в определенное значение. Но здесь явно не только в isOnline(). Изначально я думал что это из за нагрузки на сайт или множества запущенных плагинов.
avatar
где-то проблемы с кешем.
avatar
Обидно, что сама проблема в движке и ни кто даже в последующих версиях не фиксил. И мне не удается это исправить, что бы работало как положено. Может кто то подскажет?
avatar
я думаю тут нужно делать постоянный ajax, а это не риал как трудно, я пытался сделать но чет не вышло.
avatar
в User.entity.class.php
/**
	 * Возвращает статус онлайн пользователь или нет
	 *
	 * @return bool
	 */
	public function isOnline() {
		if ($oSession=$this->getSession()) {
			if (time()-strtotime($oSession->getDateLast())<60*10) { // 10 минут
				return true;
			}
		}
		return false;
	}
	/**


Может еще где-то нужно капать?
Может ли влиять на этот запрос в
actions\ActionProfile\profile_top.tpl?
avatar
сделал if (time()-strtotime($oSession->getDateLast())<60*10*1) { // 10 минут
теперь так: Залогинелся, пишет Онлайн и Только что



После начинает отчет… был 1мин. назад но пишет Онлайн, потом 2мин. назад но пишет Онлайн… и т.д. когда проходит 10мин. То пишет Снова ТОЛЬКО ЧТО и Онлайн не исчезает.
avatar
if (time()-strtotime($oSession->getDateLast())<60*10) { // 10 минут
это 60 умноженное на 10, в итоге получается 600 секунд — 10 минут
вы только что еще умножили на 1
avatar
значение сессии обновляется раз в 10 минут
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.