Вот такая нелегкая задача.
Нужно чтобы на сайте отображалось кто онлайн(пользователи)
Вот что я придумал(план):
Есть две таблицы: одна кто онлайн по ip(users_online); вторая пользователи(tb_users) в которой есть столбец последний вход(ip)
Можно сделать так чтобы ip из первой таблицы сравнивался с ip из второй и если есть совпадения выводил ник
Кто возьметься?
Вот еще:
Таблица users_online: столбец ника - username столбец ip - ip
Таблица tb_users: столбец ip - visitor
Очень буду благодарен!!!
Могу помочь в чем нибудь(кликнуть по рекламе к примеру или рефералом стать)
Спустя 14 часов, 50 минут, 54 секунды (30.09.2008 - 07:13) kirik написал(а):
думаю что тебе что-то типа этого нужно -
План надо не придумывать
Кстати почему-бы не записывать все в одну таблицу?
И еще.. Можно реализовать через сессии и тогда можно будет намного точнее посчитать сколько пользователей (браузеров) на сайте. Сесси можно также записывать в БД, а рядом с сессией записывать ник..
Код
SELECT `visitor` FROM `tb_users` LEFT JOIN `users_online` ON `tb_users`.`ip` = `users_online`.`ip`
План надо не придумывать
Кстати почему-бы не записывать все в одну таблицу?
И еще.. Можно реализовать через сессии и тогда можно будет намного точнее посчитать сколько пользователей (браузеров) на сайте. Сесси можно также записывать в БД, а рядом с сессией записывать ник..
Спустя 3 месяца, 21 день, 7 часов, 5 минут, 55 секунд (21.01.2009 - 15:19) IamSmorodin написал(а):
Цитата (kirik @ 30.09.2008 - 07:13) |
И еще.. Можно реализовать через сессии и тогда можно будет намного точнее посчитать сколько пользователей (браузеров) на сайте. Сесси можно также записывать в БД, а рядом с сессией записывать ник.. |
А как это реализовать?
Спустя 1 час, 28 минут, 24 секунды (21.01.2009 - 16:47) jetistyum написал(а):
можно поступить проще (имхо Сессии на базах данных это несколько проблематично, но тоже не лишено смысла). при каждом обращении к любой странице ты апдейтишь одно поле, в котором ставишь время (timestamp)
и потом выбираешь всех пользователей, у которых время последнего обращения меньше 5 минут... (на сколько я понимаю, чаще всего именно так построено отслеживание юзеров)
можно еще поставить на каждой страничке пингер Ajax-овский, который будет посылать запросы каждые n секунд.... тогда ты точнее сможешь отслеживать юзеров Online, (так же обновляя поле последнего пинга, и выбирать уже не за 5 минут, а за 30 сек) .. но тогда возрастет нагрузка на сервер, и возможно у кого-то не будет работать JS ( мобильные браузеры, текстовые типа Lynx).
Проще я не вижу решения, сложнее - можно
и потом выбираешь всех пользователей, у которых время последнего обращения меньше 5 минут... (на сколько я понимаю, чаще всего именно так построено отслеживание юзеров)
можно еще поставить на каждой страничке пингер Ajax-овский, который будет посылать запросы каждые n секунд.... тогда ты точнее сможешь отслеживать юзеров Online, (так же обновляя поле последнего пинга, и выбирать уже не за 5 минут, а за 30 сек) .. но тогда возрастет нагрузка на сервер, и возможно у кого-то не будет работать JS ( мобильные браузеры, текстовые типа Lynx).
Проще я не вижу решения, сложнее - можно
Спустя 4 минуты, 28 секунд (21.01.2009 - 16:52) twin написал(а):
С пингерами надо поосторожнее. Забудет юзер окно закрыть и нащелкает ему... А если безлимитка - Вам.
Спустя 10 минут, 36 секунд (21.01.2009 - 17:02) jetistyum написал(а):
нет, собственно пингер отправляет ооооочень мало информации .. пингер такие сайты, как напрмер gmail, fotocash.ru ктому же не обязательно что-то отправлять и получать....
просто get-ом дергать интерфейс, который не возвращает ни одного байта кроме серверных заголовков, этого будет достаточно.
а на счет трафика ... даже если юзер забудет окно на весь день, на трафике это мало скажется ... каждая картинка весит гораздо больше.
другое решение - писать клиент на Flash и сервер например на cpp ... открывать соединение... и по этому соединению отслеживать юзеров....
просто get-ом дергать интерфейс, который не возвращает ни одного байта кроме серверных заголовков, этого будет достаточно.
а на счет трафика ... даже если юзер забудет окно на весь день, на трафике это мало скажется ... каждая картинка весит гораздо больше.
другое решение - писать клиент на Flash и сервер например на cpp ... открывать соединение... и по этому соединению отслеживать юзеров....
Спустя 5 месяцев, 22 дня, 20 часов, 10 минут, 56 секунд (14.07.2009 - 12:13) Сергей написал(а):
А я делал всегда проще заходит пользователь на сайт его IP записывается в базу, потом с помощью нехитрой функции проверяем на сайте или нет
if (!$sock = @fsockopen($ip, $port, $num, $error, 3)) {
header("Location: ../img/off.png");
} else {
header("Location: ../img/on.png");}
if (!$sock = @fsockopen($ip, $port, $num, $error, 3)) {
header("Location: ../img/off.png");
} else {
header("Location: ../img/on.png");}
Спустя 3 минуты, 23 секунды (14.07.2009 - 12:16) Сергей написал(а):
Моленько не так объяснил))))))
Файл status.php
Файл status.php
PHP |
<?php |
Файл Index.php
<img src='status.php?ip=127.0.0.1' alt='IP' title='Статус пользователя'>
Надеюсь нигде не ошибся, но если что исправите (время добавления сообщений посмотрите и всё поймете писал на скорую руку)))))))))))
_____________