Всем привет, я тут новичок. Поиск пользовал - не слишком помог. Ситуация: Есть авторизация на стандартном механизме сессий. При удачной авторизации - пишу в БД "1" в поле "is_logged" для пользователя вошедшего на страничку. Если он штатно выйдет (нажмет кнопку "Выход") - то я его разавторизую и запишу в БД "0" в поле "is_logged". Вопрос: Как записать туда же "0" при том что пользователь закрыл браузер, либо вышел покурить на пару часов (то есть по тайм-ауту). Есть ли пример решений? Как это автоматизировать? PS: нужно для того, чтобы другие пользователи зашедшие на страничку могли узнать информацию о других авторизированных пользователях и пообщаться с ними( что-то вроде чата).
Хоть с какими словами в поиск подскажите? Я уже там час сижу параллельно! Только после этого запостил. Туплю наверно!
Сессии работают. Пользователь вводит логин/пароль и входит на требуемую страницу. При этом в БД ставится 1. БД - используется другими пользователями. Они при заходе смотрят поля "is_logged" по БД и определяют список залогиненных пользователей. Они же не могут получить данные о сессиях запущенных от имени других пользователей на сервере или все таки могут? Спасибо за внимание к теме - вопрос на данный момент для меня важный в плане понимания взаимодействия с сервером. Насколько я понимаю сейчас - как только скрипт отработал и страница загружена - при простом закрытии браузера на сервер ничего не передается - как реализовать механизм обновления БД при неактивности пользователей?
в таблице создать поле с меткой времени и кто отсутствует более определенного кол-ва времени, значит ушел
Вльдемар +1 . Ну и раз в какой то время запускать кроном скрипт и удалять лишние строки, что бы таблицу online не забивать...
Спасибо Вльдемар. как раз хотел примерно так и сделать, но до cron еще не добрался (хотя все равно придется). Параллельно нашел еще то, что наверно мне больше подходит - класс-оболочку над стандартным механизмом сесиий. Он обрабатывает сессии на серверной стороне не в виде текстовых файлов - а в виде записей в необходимой БД. В принципе - то что нужно. Всем спасибо - тему можно закрыть?
зачем крон? В таблице где юзвери содержатся создать поле и обновлять его каждый раз когда пользователь ходит по ссылкам
Любой кто обращается к списку залогиненных - автоматом запускает функцию "чистки". То есть, Вльдемар +1
Угу... И станет ресурс тот популярным и заполонят его юзвери аки Чингисханова рать... и выстроятся Update к таблице users в ряд нескончаемый... и рухнет наше сервер БД аки спелое плод с ветви дерева плодоносящего в период осени... И возопит программист: "Че за нах?" и ответят ему: "а давайте таблицу online держать в памяти"...
Зачем чистка? для выбора списка зологиненых можно запрос типа (у мя так сделано) [sql] SELECT * FROM Users WHERE last_visit > (time - "15 munute") [/sql]
Johnatan, dAllonE, чёй-то я не понимаю. Запрос [sql]SELECT name FROM Users WHERE last_visit > (time - "15 munute")[/sql] С индексом на last_visit, по идеи, ничего сложного не делает. Вычислить дату, сравнить с last_visit. Каждые 15 минут обновлять таблицу... А, вот тут может быть глюк. Если человеков 3000 он-лайн, то в течение 15 минут будет +3000 апдейтов базы. Правильно понимаю?