! -> 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
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
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`;
{
echo "<table align='center' id='footer'>\n";
echo "<tr>\n";
- echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . "</font></a></td>\n";
+ echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . " - ".show_users_online()."</font></a></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffff00'>$power_by</font></a></td>\n";
{
echo "<table align='center' id='footer'>\n";
echo "<tr>\n";
- echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . "</font></a></td>\n";
+ echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() ." - ".show_users_online(). "</font></a></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align='center' class='footer'><a target='_blank' href='$power_url'><font color='#ffff00'>$power_by</font></a></td>\n";
{
echo "<table align='center' id='footer'>\n";
echo "<tr>\n";
- echo "<td align='center' class='footer'><a target='_blank' href='$power_url' tabindex='-1'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . "</font></a></td>\n";
+ echo "<td align='center' class='footer'><a target='_blank' href='$power_url' tabindex='-1'><font color='#ffffff'>$app_title $version - " . _("Theme:") . " " . user_theme() . " - ".show_users_online()."</font></a></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align='center' class='footer'><a target='_blank' href='$power_url' tabindex='-1'><font color='#ffff00'>$power_by</font></a></td>\n";