Нужно узнать сколько пользователей сейчас в аккаунте

  • Автор темы robertoman
  • Дата начала
robertoman
Участник
Сообщения
157
Реакции
8
Подскажите как узнать сколько пользователей сейчас находятся в своём аккаунте, нужно вывести число в статистику.
 
mrleks
Участник
Сообщения
121
Реакции
25
ICQ
688214321 688214321
в корне сайта создай файл statday.php во внутрь этот код:
PHP:
<?php
$tmptime=time();
$ip = $func->UserIP;

$db->Query("SELECT * FROM db_statday WHERE ip = '$ip' LIMIT 1");
if($db->NumRows() == 0) {
    $db->Query("INSERT INTO db_statday(ip, time) VALUES ('$ip','$tmptime') ");
}
else
{
    $db->Query("UPDATE db_statday SET time = '$tmptime' WHERE ip = '$ip' ");
}
$uid = $_SESSION["user_id"];
if(!empty($uid)) {
    $db->Query("SELECT * FROM db_statonline WHERE user= '$uid' LIMIT 1");
    if($db->NumRows() == 0) {
        $db->Query("INSERT INTO db_statonline(user, away) VALUES ('$uid','$tmptime') ");
    }
    else
    {
        $db->Query("UPDATE db_statonline SET away= '$tmptime' WHERE user = '$uid' ");
    }
}
$thisday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$away = time() - 300;
$db->Query("DELETE FROM db_statday WHERE time < $thisday ");
$db->Query("DELETE FROM db_statonline WHERE away< $away ");
$db->Query("SELECT * FROM db_statday ");
$allstat=$db->NumRows();
$db->Query("SELECT * FROM db_statonline ");
$online=$db->NumRows();
?>
сделай запрос в базу
CREATE TABLE IF NOT EXISTS `db_statday` (
`ip` varchar(15) NOT NULL,
`time` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
и еще один
CREATE TABLE IF NOT EXISTS `db_statonline` (
`user` int(11) NOT NULL,
`away` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
после этого в папке ink/ фаил header.php в самом верху допиши:
PHP:
<?php
    include 'statday.php';
?>
вывести сколько онлайн <?=$online; ?>
 
mrleks
Участник
Сообщения
121
Реакции
25
ICQ
688214321 688214321
robertoman написал(а):
вывести число в статистику.
а оно тебе надо? если у тебя онлайн 5-10 то что подумают люди пришедшие на сайт?
 
mdsf123
Участник
Сообщения
8
Реакции
0
Может быть статистика!
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
Ну с этим все понятно,хотелось бы еще чтоб посмотреть можно было кто и где...
 
D
Den4ik102
Есть у каво нибудь статистика, как в ферма соседи???
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
Den4ik102 написал(а):
Есть у каво нибудь статистика, как в ферма соседи???
А какая там статистика,что то необычного есть?))
 
rus56
Участник
Сообщения
126
Реакции
16
НУ в статистику то не нужно, а Вот в админку и там в статистику совсем не плохо.
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
Почему у меня не выводится буквенное значение,хочу вставить чтоб и логин юзера так же вписывался в БД,но не пишет... Проверял на логине,состоящем из одних цифр-порядок,вот код

PHP:
<?php
$tmptime=time();

if (preg_match("/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/", $_SERVER['REMOTE_ADDR'])) {



$db->Query("SELECT * FROM db_statday WHERE ip = '$_SERVER[REMOTE_ADDR]' LIMIT 1");
if($db->NumRows() == 0) {
    $db->Query("INSERT INTO db_statday(ip, time) VALUES ('$_SERVER[REMOTE_ADDR]','$tmptime') ");
}
else
{
    $db->Query("UPDATE db_statday SET time = '$tmptime' WHERE ip = '$_SERVER[REMOTE_ADDR]' ");
}
}
$uid = $_SESSION["user_id"];
$uname = $_SESSION["user"];
if(!empty($uid)) {
    $db->Query("SELECT * FROM db_statonline WHERE user= '$uid' LIMIT 1");
    if($db->NumRows() == 0) {
        $db->Query("INSERT INTO db_statonline(id, user, away) VALUES ('$uname','$uid','$tmptime') ");
    }
    else
    {
        $db->Query("UPDATE db_statonline SET away= '$tmptime' WHERE user = '$uid' ");
    }
}


$thisday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$away = time() - 300;
$db->Query("DELETE FROM db_statday WHERE time < $thisday ");
$db->Query("DELETE FROM db_statonline WHERE away< $away ");
$db->Query("SELECT * FROM db_statday ");
$allstat=$db->NumRows();
$db->Query("SELECT * FROM db_statonline ");
$online=$db->NumRows();
?>
И даже preg_match пробовал добавлять на буквенные значения-один черт не пишет...
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #10
Ты имеешь ввиду это?
PHP:
$db->Query("INSERT INTO db_statonline(id, user, away) VALUES ('$uname','$uid','$tmptime') ");
// В колонку ID ты вставляешь имя, а в `user` - его ИД

$db->Query("INSERT INTO db_statonline(id, user, away) VALUES ('$uid','$uname','$tmptime') ");
НЕ знаю структуры этой таблицы, но почему-то мне кажется что колонка `id` целочисленая
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #11
MegaGoblin написал(а):
Ты имеешь ввиду это?
PHP:
$db->Query("INSERT INTO db_statonline(id, user, away) VALUES ('$uname','$uid','$tmptime') ");
// В колонку ID ты вставляешь имя, а в `user` - его ИД

$db->Query("INSERT INTO db_statonline(id, user, away) VALUES ('$uid','$uname','$tmptime') ");
НЕ знаю структуры этой таблицы, но почему-то мне кажется что колонка `id` целочисленая
Т.е. думаешь что дело в самой таблице может быть даже? Проверить надо кстати будет этот момент... Нет,не в этом дело там,табла в норме,все равно не пишет ни фига...
 
Последнее редактирование:
The Doshs
Участник
Сообщения
383
Реакции
63
  • #12
У меня есть модуль,кто был в сети=)Может выложу)Подумаю...
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #13
The Doshs написал(а):
У меня есть модуль,кто был в сети=)Может выложу)Подумаю...
Такой модуль есть тут уже,это не то,я делаю кто СЕЙЧАС ОНЛАЙН именно...
 
The Doshs
Участник
Сообщения
383
Реакции
63
  • #14
Ааа...Тогда извиняюсь.
 
MegaGoblin
PHP, JS, AJAX, CSS, HTML
Участник
Сообщения
322
Реакции
72
  • #15
alexsoft59 написал(а):
Т.е. думаешь что дело в самой таблице может быть даже? Проверить надо кстати будет этот момент... Нет,не в этом дело там,табла в норме,все равно не пишет ни фига...
Может дело все-таки в этом? Ты пытаешь записать строку в числовое поле, поэтому она и не сохраняется. Когда строка состоит из цифр, т.е. является числом, то она спокойно записывается.
 
alexsoft59
Капитан очевидность...).
Участник
Сообщения
347
Реакции
29
  • #16
MegaGoblin написал(а):
Может дело все-таки в этом? Ты пытаешь записать строку в числовое поле, поэтому она и не сохраняется. Когда строка состоит из цифр, т.е. является числом, то она спокойно записывается.
Так тоже такая мысля была,но нет,пробовал значения таблы менял и не фига,не пишет...

PHP:
CREATE TABLE IF NOT EXISTS `db_statonline` (
  `id` varchar(255) NOT NULL,
  `user` int(11) NOT NULL,
  `away` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
вот смотри,так правильно вроде? Там просто id и user местами перепутаны,не обращай на это внимания...
 
tawok
Участник
Сообщения
2
Реакции
1
  • #17
Неправильно записано.
Должно быть в файле _header.php

<?php
include 'inc/_statday.php';
?>
 
Сверху