X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как определить сколько человек находится на сайте?
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.5.2010, 16:07; Ответить: sc2r2bey
Сообщение #1


Как определить сколько человек находится на сайте, если регистрация не предусмотрена?


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
сообщение 3.5.2010, 16:38; Ответить: FordogeN
Сообщение #2


У нас есть таблица лога посещений с именем "log" и структурой ( id | ip | date дата без минут | datei минуты )


[php]<?
$date=date(...); // Текущая дата. Например 22 03.05.2010 (часы дата.месяц.год)
$datei=date(i); // Сколько сейчас минут
$count_q = mysql_query("SELECT * FROM log WHERE date LIKE '$date' AND datei LIKE '$datei' GROUP BY ip");
$count = mysql_num_rows($count_q);

echo"За эту минуту сайт посетило $count человек";
?>[/php]

ps. А над чем работаешь?)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Matt
Matt
сообщение 3.5.2010, 16:42; Ответить: Matt
Сообщение #3


Есть разные виджеты для этого. Видел даже такие, которые показывают гос-ю принадлежность онлайн-посетителей. Всё зависит от движка сайта, поищи в нете, точно будут.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
сообщение 3.5.2010, 16:44; Ответить: FordogeN
Сообщение #4


А если человек не юзает движки, а пишет свой? Как я на пример)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
reaboom
reaboom
сообщение 3.5.2010, 16:46; Ответить: reaboom
Сообщение #5


http://www.masterwebs.ru/topic/6931-onlain/page-2#entry40965 - почти, тоже самое.

Нужна таблица:
CREATE TABLE sessions
(
id INT NOT NULL AUTO_INCREMENT,
session_id TEXT NOT NULL,
last_time INT NOT NULL,
PRIMARY KEY (id)
);

Код, который должен выполняться на каждой странице:
[php]<?php
// Включаем сессию
session_start();

// Текущее время
$current_time = time();

// Подключаемся к MySQL
mysql_connect('localhost', 'root', '12345');
mysql_select_db('test');

// Выбираем пользователя с такой-же ID-сессий, как сейчас
$res = mysql_query("SELECT * FROM sessions WHERE session_id = '". session_id() ."'");

// Если такого пользователя не существует, то нужно создать его
if (!mysql_num_rows($res)) {
mysql_query("INSERT INTO sessions (session_id, last_time) VALUES('". session_id() ."', '". $current_time ."')");
}
else {
$row = mysql_fetch_array($res);

// Обновляем таблицу
mysql_query("UPDATE sessions SET last_time = '". $current_time ."' WHERE session_id = '". session_id() ."'");
}
?>[/php]
Код который подсчитвает количество пользователей онлайн (будем считать, что пользователь онлайн, если последний раз он обновил страницу не позднее 5-ти минут назад):
[php]<?php
// Включаем сессию
session_start();

// Текущее время
$online_time = time() - 300;

// Подключаемся к MySQL
mysql_connect('localhost', 'root', '12345');
mysql_select_db('test');

// Выбираем пользователей, активность которых была не позднее 5-ти минут назад
$res = mysql_query("SELECT * FROM sessions WHERE last_time > '". $online_time ."'");

print mysql_num_rows($res);
?>[/php]
Так-же надо не забывать, время от времени очищать таблицу от устаревших записей.

P.S.
Код состряпал за 2 минуты (и не проверял), так-что может что-то не работать :) Но суть должна быть понятна


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.5.2010, 19:29; Ответить: ZiTosS
Сообщение #6


sc2r2bey, всё таже таблица с сессиями. Уже тема была про онлайн :rolleyes: Тут не важно кто зареган, а кто нет, важно, что у каждого посетителя будет свой id_session. Можно ориентироваться по нему, он псевдоуникален.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.5.2010, 21:04; Ответить: sc2r2bey
Сообщение #7


а какие данные нфдо сканерить и как?


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.5.2010, 21:14; Ответить: ZiTosS
Сообщение #8


Надо просто при каждом обращении к странице сайта обновлять таблицу сессий, id сессии можно получить функцией: session_id()
А так же считать сколько человек сейчас в онлайне. А вот удалять данные устаревших сессий советовал бы через СRON

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Странный трафик на сайте длительное время
34 TABAK 9158 24.4.2024, 23:38
автор: Arsenwenger
Открытая тема (нет новых ответов) Как в пушсетках покупают по 100-200 тысяч кликов за день?
2 Boymaster 719 24.4.2024, 17:52
автор: Boymaster
Горячая тема (нет новых ответов) CryptoCloud — прием USDT, BTC, ETH, LTC на любом сайте
37 CryptoCLoud 10832 24.4.2024, 15:37
автор: CryptoCLoud
Открытая тема (нет новых ответов) Боты могут делать пушподписки на моём сайте?
3 Megaspryt 993 24.4.2024, 5:18
автор: Skyworker
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19905 23.4.2024, 13:52
автор: Vmir


 



RSS Текстовая версия Сейчас: 26.4.2024, 2:44
Дизайн