From 7dfdcd9b95eb1cf6393f4b9c7d9170e0c4d2e003 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Mon, 12 Oct 2009 23:24:39 +0000 Subject: [PATCH] Added discrete users online in footer (from Wish List Forum) --- CHANGELOG.txt | 8 ++++++++ admin/db/users_db.inc | 27 +++++++++++++++++++++++++++ sql/alter2.2.sql | 11 +++++++++++ themes/aqua/renderer.php | 2 +- themes/cool/renderer.php | 2 +- themes/default/renderer.php | 2 +- 6 files changed, 49 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f5d5e93d..8680635c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,14 @@ Legend: ! -> Note $ -> Affected files +13-Oct-2009 Joe Hunt ++ Added discrete users online in footer (from Wish List Forum) +$ /admin/db/users_db.inc + /sql/alter2.2.sql + /themes/aqua/renderer.php + /themes/cool/renderer.php + /themes/default/renderer.php + 12-Oct-2009 Janusz Dobrowolski # Fixed sql injection vulnerability on some php/mysql configurations $ /admin/db/users_db.inc diff --git a/admin/db/users_db.inc b/admin/db/users_db.inc index 496f18ac..d7ac2e64 100644 --- a/admin/db/users_db.inc +++ b/admin/db/users_db.inc @@ -163,4 +163,31 @@ function check_user_activity($id) return $ret[0]; } + +//----------------------------------------------------------------------------------------------- +function show_users_online() +{ + $timeoutseconds = 120; + + $timestamp=time(); + $timeout=$timestamp-$timeoutseconds; + $ip = substr($_SERVER['REMOTE_ADDR'], 0, strrpos($_SERVER['REMOTE_ADDR'],".")); + + // Add user to database + $loopcap = 0; + while($loopcap<3 && db_query("INSERT INTO ".TB_PREF."useronline VALUES('". $timestamp ."','". $ip ."','". $_SERVER['PHP_SELF'] ."')")) + { // In geval van error + $timestamp = $timestamp+$ip{0}; + $loopcap++; + } + + //Remove users that were not online within $timeoutseconds. + db_query("DELETE FROM ".TB_PREF."useronline WHERE timestamp<". $timeout); + + // Select online users + $result = db_query("SELECT DISTINCT ip FROM ".TB_PREF."useronline"); + $users = db_num_rows($result); + return "$users ".($users == 1 ? _("user online") : _(" users online")); + +} ?> \ No newline at end of file diff --git a/sql/alter2.2.sql b/sql/alter2.2.sql index 430d3126..9a50e75b 100644 --- a/sql/alter2.2.sql +++ b/sql/alter2.2.sql @@ -129,6 +129,17 @@ CREATE TABLE `0_tag_associations` ( UNIQUE KEY(`record_id`,`tag_id`) ) TYPE=MyISAM; +DROP TABLE IF EXISTS `0_usersonline`; + +CREATE TABLE `0_useronline` ( + `timestamp` int(15) NOT NULL default '0', + `ip` varchar(40) NOT NULL default '', + `file` varchar(100) NOT NULL default '', + PRIMARY KEY (`timestamp`), + KEY `ip` (`ip`), + KEY `file` (`file`) +) TYPE=MyISAM; + ALTER TABLE `0_suppliers` ADD COLUMN `phone2` varchar(30) NOT NULL default '' AFTER `phone`; ALTER TABLE `0_cust_branch` ADD COLUMN `phone2` varchar(30) NOT NULL default '' AFTER `phone`; ALTER TABLE `0_shippers` ADD COLUMN `phone2` varchar(30) NOT NULL default '' AFTER `phone`; diff --git a/themes/aqua/renderer.php b/themes/aqua/renderer.php index 96bbd30c..415a5009 100644 --- a/themes/aqua/renderer.php +++ b/themes/aqua/renderer.php @@ -114,7 +114,7 @@ { echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; diff --git a/themes/cool/renderer.php b/themes/cool/renderer.php index d72557d1..178fb7e1 100644 --- a/themes/cool/renderer.php +++ b/themes/cool/renderer.php @@ -114,7 +114,7 @@ { echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; diff --git a/themes/default/renderer.php b/themes/default/renderer.php index 12c6ef65..e7ec0c86 100644 --- a/themes/default/renderer.php +++ b/themes/default/renderer.php @@ -115,7 +115,7 @@ { echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; -- 2.30.2