Здравствуйте, сегодня решил сделать счётчик пользователей онлайн и сколько пользователей зарегистрировано на сайте. Мне удалось сделать счётчик сколько пользователей зарегистрировались на сайте и всё успешно написано в главном меню. И сделал счётчик пользователей онлайн, то-есть сколько пользователей на данный момент онлайн. Но код с онлайном, не такой, как я хочу, то-есть он показывает сколько всего пользователей присутствует на сайте. А я хочу, чтоб он показывал только тех пользователей онлайн, которые уже авторизованные. А те которые не авторизованные, тех не надо считать как онлайн. Так вот я не понимаю как это сделать. Вот какой код: PHP: <?php session_start(); function GetUsersOnline(){ clearstatcache(); $SessionDir = session_save_path(); $Timeout = 60 * 3; if ($Handler = scandir ($SessionDir)){ $count = count ($Handler); $users = 0; for ($i = 2; $i < $count; $i++){ if (time() - fileatime ($SessionDir . '/' . $Handler[$i]) < $Timeout){ $users++; } } return $users; } else { return 'error'; } } echo 'Online: ' . GetUsersOnline();
добавляешь в таблицу еще одно поле для времени и даты последней активности при обновлении страницы для текущего пользователя обновляешь это поле а в функции для подсчета собираешь всех пользователей у которых последняя активность была, например, менее чем 15 минут назад. готовых php методов для этого нет.
Можно сделать проще: Создай таблицу "online" со столбцами: "id", "login", "date". Когда пользователь заходит на сайт - скрипт проверяет, есть ли в таблице "online" пользователь, с авторизованным id. Если есть - проверяешь дату $tableDate + 300 > time (). Если больше - всё ок. Если меньше - изменяешь дату в таблице на time(). Далее, если пользователя с таким id нет в таблице - заносишь запись. Здесь 300 - 5 минут - точность определения. Можно сделать 60, что равно одной минуте, а значит точность больше. Ну и из этой таблицы, естественно забирай пользователей, которые онлайн, а точнее их количество запросом "SELECT COUNT(*) FROM `online`" --- Добавлено --- А, да, забыл, нужно ещё удалять пользователей, активность которых была раньше чем 5 минут назад. Думаю, разберёшься (Если разберёшься с тем что выше)
Ну так сделаешь ошибки - загуглишь что за ошибки, или сюда напишешь - объясню. Готовый код стоит денег. Конкретно я за этот код хочу 10$. Скинешь - напишу.
Я тебе могу только спасибо на каждых письмах сделать --- Добавлено --- Я живу в Европе. Там нет в терминалах webmoney или киви кошельки + у нас другая валюта. Так что не выйдет.4 причины есть: 1) Живу не в России. 2) У нас нет webmoney 3) Нет карточки у меня 3) Валюта разная.
1. Я тоже 2. Веб-мани есть везде 3. Карточка не нужна чтоб через терминал пополнять. 4. Можешь мне на EUR-кошелёк скинуть. 5. Я не заставляю. Не хочешь платить - делай сам. Я помогу с ошибками. + такой код есть в гугле. Причём не в количестве 1 шт.
Что значит не нужна ? Откуда тогда деньги взять ? --- Добавлено --- Ну крч я не смогу тебе скинуть и всё. Я хочу просто код. Тут же форму где помогать надо.
Тут форум именно где помогают,а не пишут все за тебя.А если не хочешь париться - пиши в раздел фриланс и будь готов вложить деньги
Не поверишь, но терминал это такая коробочка с электрической начинкой, куда надо купюра вставлять. Можно и с карточки, но не обязательно. --- Добавлено --- Дай заработать 10 баксов за 15 строк кода
Могу. Какие были попытки сделать скрипт, кроме выпрашивания милостыни? --- Добавлено --- Давай свой код, свои ошибки, я помогу.