Перейти к содержимому


Баннерная сеть GinAds

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

#1 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 03 Май 2010 - 15:07

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


 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Как определить региональную принадлежность сайта?
  2. Как узнать сколько уникальных посетителей в день приходит на сайт?
  3. Как рассчитать количество трафика по поисковому запросу.
  4. Как повысить посещаемость сайта.
  5. Как узнать находится ли сайт под фильтрами?

#2 FordogeN

FordogeN
  • Неактивные
  • 1 414 сообщений
  • Репутация: 0

Отправлено 03 Май 2010 - 15:38

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


<?
$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 человек";
?>


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


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#3 Matt

Matt
  • Неактивные
  • 774 сообщений
  • Репутация: 2

Отправлено 03 Май 2010 - 15:42

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

#4 FordogeN

FordogeN
  • Неактивные
  • 1 414 сообщений
  • Репутация: 0

Отправлено 03 Май 2010 - 15:44

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


  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#5 reaboom

reaboom
  • Неактивные
  • 40 сообщений
  • Репутация: 0

Отправлено 03 Май 2010 - 15:46

http://www.masterweb...ge-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
// Включаем сессию
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() ."'");
}
?>

Код который подсчитвает количество пользователей онлайн (будем считать, что пользователь онлайн, если последний раз он обновил страницу не позднее 5-ти минут назад):
<?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);
?>

Так-же надо не забывать, время от времени очищать таблицу от устаревших записей.

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

#6 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 03 Май 2010 - 18:29

sc2r2bey, всё таже таблица с сессиями. Уже тема была про онлайн :rolleyes: Тут не важно кто зареган, а кто нет, важно, что у каждого посетителя будет свой id_session. Можно ориентироваться по нему, он псевдоуникален.
  • 0

#7 surfer

surfer
    Topic Starter
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 03 Май 2010 - 20:04

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

#8 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 03 Май 2010 - 20:14

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

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru