robertoman
Участник
- Сообщения
- 157
- Реакции
- 8
в корне сайта создай файл statday.php во внутрь этот код:
сделай запрос в базу
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 в самом верху допиши:
вывести сколько онлайн <?=$online; ?>
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';
?>
а оно тебе надо? если у тебя онлайн 5-10 то что подумают люди пришедшие на сайт?robertoman написал(а):вывести число в статистику.
А какая там статистика,что то необычного есть?))Den4ik102 написал(а):Есть у каво нибудь статистика, как в ферма соседи???
rus56
Участник
- Сообщения
- 126
- Реакции
- 16
Почему у меня не выводится буквенное значение,хочу вставить чтоб и логин юзера так же вписывался в БД,но не пишет... Проверял на логине,состоящем из одних цифр-порядок,вот код
И даже preg_match пробовал добавлять на буквенные значения-один черт не пишет...
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();
?>
- Сообщения
- 322
- Реакции
- 72
Ты имеешь ввиду это?
НЕ знаю структуры этой таблицы, но почему-то мне кажется что колонка `id` целочисленая
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') ");
Т.е. думаешь что дело в самой таблице может быть даже? Проверить надо кстати будет этот момент... Нет,не в этом дело там,табла в норме,все равно не пишет ни фига...MegaGoblin написал(а):Ты имеешь ввиду это?
НЕ знаю структуры этой таблицы, но почему-то мне кажется что колонка `id` целочисленая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') ");
Последнее редактирование:
The Doshs
Участник
- Сообщения
- 383
- Реакции
- 63
Такой модуль есть тут уже,это не то,я делаю кто СЕЙЧАС ОНЛАЙН именно...The Doshs написал(а):У меня есть модуль,кто был в сети=)Может выложу)Подумаю...
The Doshs
Участник
- Сообщения
- 383
- Реакции
- 63
- Сообщения
- 322
- Реакции
- 72
Может дело все-таки в этом? Ты пытаешь записать строку в числовое поле, поэтому она и не сохраняется. Когда строка состоит из цифр, т.е. является числом, то она спокойно записывается.alexsoft59 написал(а):Т.е. думаешь что дело в самой таблице может быть даже? Проверить надо кстати будет этот момент... Нет,не в этом дело там,табла в норме,все равно не пишет ни фига...
Так тоже такая мысля была,но нет,пробовал значения таблы менял и не фига,не пишет...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;