Najwięcej użytkowników było... jako osobny panel i w panelu Aktualnie online
|
Fr33Q |
Dodany dnia 06.08.2009 22:56:53
|
Przedszkolak
Postów: 6
Data rejestracji: 06.08.2009 22:45
|
Jako że przed chwilą się zarejestrowałem - witam wszystkich
Tak jak w temacie, a konkretniej - przydałoby mi się, aby w panelu np. "Aktualnie online" pojawiała się informacja o tym kiedy i ilu najwięcej użyszkodników było obecnych. Szukałem informacji na ten temat i znalazłem - ale dla wersji v6 więc raczej na pewno nie będzie działać na v7 (chyba że się mylę??). Z góry dziękuję za wszelką pomoc, na pewno przyda się nie tylko mi
pozdrawiam,
Fr33Q
PW od moderatora:
- Przeniesienie tematu - Pieka 07.08 - 01:23
Edytowane przez Pieka dnia 07.08.2009 10:47:37
|
|
|
|
Wścibski Gość |
Dodany dnia 25.11.2024 00:50:09
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
EuGeN |
Dodany dnia 07.08.2009 02:04:19
|
Początkujący
Postów: 150 Pomógł: 10
v7.02.05 Data rejestracji: 18.06.2006 11:19
|
Na podstawie http://www.php-fu...ad_id=6052
Wchodzimy w Panel administracyjny > zarzadzanie strona > zarzadanie panelami > dodaj nowy
tresci wklejamy ten kod
$result = dbquery("ALTER TABLE ".DB_SETTINGS." ADD nu SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'");
$result = dbquery("ALTER TABLE ".DB_SETTINGS." ADD nub INT(10) UNSIGNED NOT NULL DEFAULT '0'");
i klikamy podglad (powinny sie dodac dwa polaw tabeli settings) nastepnie usowamy kod z pola i wklejamy ten
//start
openside("info");
///////////////////////////////////////////////////////////////////////////////////
///////jesli masz wlaczony panel online mozesz usunac ten kod///////////
///////////////////////////////////////////////////////////////////////////////////
$result = dbquery("SELECT * FROM ".DB_ONLINE." WHERE online_user=".($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".USER_IP."'"));
if (dbrows($result)) {
$result = dbquery("UPDATE ".DB_ONLINE." SET online_lastactive='".time()."' WHERE online_user=".($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".USER_IP."'")."");
} else {
$result = dbquery("INSERT INTO ".DB_ONLINE." (online_user, online_ip, online_lastactive) VALUES ('".($userdata['user_level'] != 0 ? $userdata['user_id'] : "0")."', '".USER_IP."', '".time()."')");
}
$result = dbquery("DELETE FROM ".DB_ONLINE." WHERE online_lastactive<".(time()-60)."");
/////////////////////////////////////////////////////////////////////////
/////////////koniec ewentualnego kodu do usuniecia///////////////
/////////////////////////////////////////////////////////////////////////
$all = dbcount("(online_user)", DB_ONLINE, "online_user!=''");
if($all > $settings[nu]) $result = dbquery("UPDATE ".DB_SETTINGS." SET nu='".$all."', nub='".time()."'");
$settings2 = dbarray(dbquery("SELECT nu, nub FROM ".DB_SETTINGS." "));
echo"<table border='0' cellspacing='1' cellpadding='0' width='100%' class='small'>
<tr>
<td class='small' colspan='2' align='left'>
Najwiecej userow: ".$settings2[nu]."</i>
</td>
</tr>
<tr>
<td class='small' colspan='2' align='left'>
Bylo: <i>".showdate('%d.%m.%Y %H:%M:%S',$settings2[nub])."</i>
</td>
</tr>
</table>";
closeside();
//end
Powinno działać.
Kocio Kocio
|
|
|
|
Pieka |
Dodany dnia 07.08.2009 09:17:08
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
- Nie prosciej podac to w takiej formie, zeby bylo wiadomo, ze sie cos dodalo do bazy?
- Podany kod sypnie bledami na bardziej restrykcyjnym hostingu, warto poprawic zmienne nu i nub.
Jestem jaki jestem
|
|
|
|
Fr33Q |
Dodany dnia 07.08.2009 09:51:42
|
Przedszkolak
Postów: 6
Data rejestracji: 06.08.2009 22:45
|
No niestety nie działa do końca poprawnie :@ Panel się pojawia, na jego dole pokazuje się mniej więcej to co powinno, ale przed tym takie błędy:
Notice: Use of undefined constant nu - assumed 'nu' in /var/www/virtual/(stronka)/themes/templates/panels.php(48) : eval()'d code on line 22
Notice: Use of undefined constant nu - assumed 'nu' in /var/www/virtual/(stronka)/themes/templates/panels.php(48) : eval()'d code on line 28
Notice: Use of undefined constant nub - assumed 'nub' in /var/www/virtual/(stronka)/themes/templates/panels.php(48) : eval()'d code on line 33
Pola w tabeli settings dodały się, więc nie wiem skąd te błędy..
I jeszcze jedno: dobrze byłoby, gdyby ta statystyka pokazywała się w istniejącym już panelu "Aktualnie online" np. pod napisem "Użytkowników online". Dałoby rade coś wykombinować?
Edytowane przez Pieka dnia 07.08.2009 10:01:50
|
|
|
|
Pieka |
Dodany dnia 07.08.2009 10:03:24
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Ponizszy kod wklej do dodatkowej strony i wykonaj podglad (nie zapisuj!):
<?php
$result = dbquery("ALTER TABLE ".DB_SETTINGS." ADD nu SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'");
$result2 = dbquery("ALTER TABLE ".DB_SETTINGS." ADD nub INT(10) UNSIGNED NOT NULL DEFAULT '0'");
if ($result) {
echo "Pole nu zostało dodane.<br />";
} else {
echo "Nie dodano pola nu.<br />";
}
if ($result2) {
echo "Pole nub zostało dodane.<br />";
} else {
echo "Nie dodano pola nub.<br />";
}
?>
Ponizej poprawiony panel:
openside("Najwięcej użytkowników było...");
///////////////////////////////////////////////////////////////////////////////////
///////jesli masz wlaczony panel online mozesz usunac ten kod///////////
///////////////////////////////////////////////////////////////////////////////////
$cond = ($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".USER_IP."'");
$result = dbquery("SELECT * FROM ".DB_ONLINE." WHERE online_user=".$cond."");
if (dbrows($result) != 0) {
$result = dbquery("UPDATE ".DB_ONLINE." SET online_lastactive='".time()."' WHERE online_user=".$cond."");
} else {
$name = ($userdata['user_level'] != 0 ? $userdata['user_id'] : "0");
$result = dbquery("INSERT INTO ".DB_ONLINE." VALUES('".$name."', '".USER_IP."', '".time()."')");
}
if (isset($_POST['login'])) {
$result = dbquery("DELETE FROM ".DB_ONLINE." WHERE online_user='0' AND online_ip='".USER_IP."'");
} else if (isset($logout)) {
$result = dbquery("DELETE FROM ".DB_ONLINE." WHERE online_ip='".USER_IP."'");
}
$result = dbquery("DELETE FROM ".DB_ONLINE." WHERE online_lastactive<".(time()-60)."");
/////////////////////////////////////////////////////////////////////////
/////////////koniec ewentualnego kodu do usuniecia///////////////
/////////////////////////////////////////////////////////////////////////
$all = dbcount("(online_user)", DB_ONLINE, "online_user!=''");
if($all > $settings['nu']) $result = dbquery("UPDATE ".DB_SETTINGS." SET nu='".$all."', nub='".time()."'");
$settings2 = dbarray(dbquery("SELECT nu, nub FROM ".DB_SETTINGS.""));
echo"<table border='0' cellspacing='1' cellpadding='0' width='100%' class='small'>
<tr><td class='small' colspan='2' align='left'>
Najwięcej userów: ".$settings2['nu']."</i>
</td></tr><tr>
<td class='small' colspan='2' align='left'>
Było: <i>".showdate('%d.%m.%Y %H:%M:%S',$settings2['nub'])."</i>
</td></tr></table>";
closeside();
Jesli chcesz go miec w standardowym panelu online, to go tam po prostu wstaw. Kod masz.
Edytowane przez Pieka dnia 07.08.2009 10:28:04
Jestem jaki jestem
|
|
|
|
kefirek |
Dodany dnia 07.08.2009 10:14:18
|
Zaawansowany
Postów: 1191 Pomógł: 418 Ostrzeżeń: 1
v6.00.xxx Data rejestracji: 06.04.2008 21:59
|
W załączniku panel online_users_panel.
W dodatkowych stronach wklejasz ten kod
<?php
$result = dbquery("ALTER TABLE ".$db_prefix."settings ADD nu SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0'");
$result1 = dbquery("ALTER TABLE ".$db_prefix."settings ADD nub INT(10) UNSIGNED NOT NULL DEFAULT '0'");
if($result AND $result1){
echo 'Wszystko OK.';
} else {
echo 'BŁAD !!!!.';
}
?>
i dajesz podgląd. Jeśli wcześniej już to zrobiłeś to pomijasz to i zamieniasz tylko pliki z załącznika.
kefirek dodał/a następującą plik:
Edytowane przez kefirek dnia 07.08.2009 10:15:56
|
|
|
|
Fr33Q |
Dodany dnia 07.08.2009 10:27:01
|
Przedszkolak
Postów: 6
Data rejestracji: 06.08.2009 22:45
|
OK już sobie poradziłem, działa pięknie Dzięki wszystkim za pomoc |
|
|
|
EuGeN |
Dodany dnia 07.08.2009 12:11:45
|
Początkujący
Postów: 150 Pomógł: 10
v7.02.05 Data rejestracji: 18.06.2006 11:19
|
Pieka napisał/a:
- Nie prosciej podac to w takiej formie, zeby bylo wiadomo, ze sie cos dodalo do bazy?
- Podany kod sypnie bledami na bardziej restrykcyjnym hostingu, warto poprawic zmienne nu i nub.
Zrobiłem to na szybko, nie sprawdzałem czy działa dlatego napisałem powinna działać Jak widać już mnie poprawiliście hehe
Kocio Kocio
|
|
|
|
Pieka |
Dodany dnia 07.08.2009 12:13:18
|
Postów: 19882 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Nastepnym razem sprawdz. Nawet slawekneo tak robi, a sam wiesz ile Ci do niego brakuje...
Jestem jaki jestem
|
|
|
|
Adam Stalica |
Dodany dnia 25.08.2010 22:44:43
|
Początkujący
Postów: 213 Pomógł: 13
v7.02.03 Data rejestracji: 05.08.2010 17:24
|
Ok trochę z tym problemów, ale działa...
Pozdrawiam ;)
Wiadomość doklejona:
Mam drobny problem, gdyż wyświetla mi błąd:
Notice: Undefined index: nu in C:\Program Files\WebServ\httpd-users\Adam\infusions\online_users_panel\online_users_panel.php on line 12
Co dotyczy linii:
if($all > $settings['nu']) $result = dbquery("UPDATE ".DB_SETTINGS." SET nu='".$all."', nub='".time()."'");
Nie ma tu jakiegoś błędu?
PW od moderatora:
- Ogólna Uwaga - foxi89 25.08 - 22:59
Edytowane przez Adam Stalica dnia 30.08.2010 20:35:20
Witam
|
|
|