CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Алгоритм "Кто онлайн"
Официальный форум Eleanor CMS » Для вебмастеров и владельцев сайтов » Комната программистов
termit
Пишу, один проэкт не на Елеаноре.
Подскажите, как правильнее сделать функцию "Кто онлайн"

Подумывал, при каждом переходе пользователя по страничкам записывать время перехода, а в блоке отображать активных за последние например 15 минут.
Но!!!
+Один запрос на обновление даных при переходах
+Один при отображении блока

П.С Может с сессиями чтото намутить можно?
---------------------
И ещё вопрос такого типа. Не нарушу я каких либо "законов", если возьму стиль сабмитов с Униель?
Alexander
termit, используйте запрос не INSERT & UPDATE, а REPLACE. Ну и признаки желательно определить по которым пользователь будет считаться уникальным (IP, кука).
termit
Понял, спасибо)
Уникальным у меня является случайный хеш)
termit
(Чтото не разобрался я с реплейсом :dntknw: )
Сделал так
Изменение времени
UPDATE users SET `lastvisit`= NOW() where `id`={$id};

Проверка:
SELECT `id`,`login`,`lastvisit` from users where MINUTE(NOW())-MINUTE(`lastvisit`)<15;

Посоветуйте может что оптимизировать, я в мускуле не силён...

-------------
Только что заметил багу, проверка учитывает только минуты, и после чч:00 у меня все пользователи онлайн)))
termit
Переделал проверку так

SELECT `id`,`login`,`lastvisit` from f_users where NOW() < `lastvisit`+INTERVAL 15 MINUTE;

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.