Hi,
this patch makes user_stats.php3 work even if you don't have
general_stats_use_totacct: yes in conf/admin.conf.
- Added some debugging code
- Now "all" is always available in servers drop-down
[EMAIL PROTECTED] uwalcher]$ diff -u
/usr/local/cvs/radiusd/dialup_admin/htdocs/user_stats.php3
/usr/local/dialup_admin/htdocs/user_stats.php3
--- /usr/local/cvs/radiusd/dialup_admin/htdocs/user_stats.php3
2003-07-23 16:34:09.000000000 +0200
+++ /usr/local/dialup_admin/htdocs/user_stats.php3 2003-11-10
19:15:41.000000000 +0100
@@ -37,7 +37,7 @@
if ($sortby != '')
$order_attr = ($sortby == 'num') ? 'ConnNum' :
'ConnTotDuration';
else
- $order_attr = 'ConnNum';
+ $order_attr = 'ConnTotDuration';
if ($server != '' && $server != 'all')
$server_str = "AND NASIPAddress = '$server'";
$login_str = ($login) ? "AND UserName = '$login' " : '';
@@ -83,42 +83,52 @@
<p>
<table border=1 bordercolordark=#ffffe0 bordercolorlight=#000000
width=100% cellpadding=2 cellspacing=0 bgcolor="#ffffe0" valign=top>
<tr bgcolor="#d0ddb0">
-
<th>#</th><th>login</th><th>date</th><th>server</th><th>connections
number</th><th>connections duration</th><th>upload</th><th>download</th>
+ <th>#</th><th>username</th><th>last
login</th><th>server</th><th>connections number</th><th>connections
duration</th><th>upload</th><th>download</th>
</tr>
<?php
$link = @da_sql_pconnect($config);
if ($link){
- $search = @da_sql_query($link,$config,
- "SELECT * FROM $config[sql_total_accounting_table]
- WHERE AcctDate >= '$start' AND AcctDate <= '$stop' $server_str
$login_str
- ORDER BY $order_attr $order $limit;");
-
+ if ($config[general_stats_use_totacct] == 'yes')
+ $search = @da_sql_query($link,$config,
+ "SELECT * FROM $config[sql_total_accounting_table]
+ WHERE AcctDate >= '$start' AND AcctDate <= '$stop'
$server_str $login_str
+ ORDER BY $order_attr $order $limit;");
+ else
+ $search = @da_sql_query($link,$config,
+ "SELECT UserName,sum(AcctSessionTime) AS
ConnTotDuration,count(RadAcctID) AS ConnNum,
+ sum(AcctInputOctets) AS OutputOctets,
sum(AcctOutputOctets) AS InputOctets, NASIPAddress,
+ max(AcctStopTime) AS AcctStopTime FROM
$config[sql_accounting_table]
+ WHERE AcctStopTime >= '$start' AND AcctStopTime <=
'$stop' $server_str $login_str
+ GROUP BY UserName,NASIPAddress ORDER BY $order_attr
$order $limit;");
if ($search){
while( $row = @da_sql_fetch_array($search,$config) ){
$num++;
- $acct_login = $row[UserName];
+ $acct_login = $row[username];
if ($acct_login == '')
$acct_login = '-';
else
$acct_login = "<a
href=\"user_admin.php3?login=$acct_login\" title=\"Edit user
$acct_login\">$acct_login</a>";
- $acct_time = $row[ConnTotDuration];
+ $acct_time = $row[conntotduration];
$acct_time = time2str($acct_time);
- $acct_conn_num = $row[ConnNum];
- $acct_date = $row[AcctDate];
- $acct_upload = $row[InputOctets];
- $acct_download = $row[OutputOctets];
+ $acct_conn_num = $row[connnum];
+ if ($config[general_stats_use_totacct] == 'yes')
+ $acct_date = $row[acctdate];
+ else
+ $acct_date =
substr($row[acctstoptime],0,10);
+ $acct_upload = $row[inputoctets];
+ $acct_download = $row[outputoctets];
$acct_upload = bytes2str($acct_upload);
$acct_download = bytes2str($acct_download);
- $acct_server =
$da_name_cache[$row[NASIPAddress]];
+ $acct_server =
$da_name_cache[$row[nasipaddress]];
if (!isset($acct_server)){
- $acct_server =
@gethostbyaddr($row[NASIPAddress]);
+ $acct_server =
@gethostbyaddr($row[nasipaddress]);
if (!isset($da_name_cache) &&
$config[general_use_session] == 'yes'){
-
$da_name_cache[$row[NASIPAddress]] = $acct_server;
+
$da_name_cache[$row[nasipaddress]] = $acct_server;
session_register('da_name_cache');
}
else
-
$da_name_cache[$row[NASIPAddress]] = $acct_server;
+
$da_name_cache[$row[nasipaddress]] = $acct_server;
}
if ($acct_server == '')
$acct_server = '-';
@@ -136,7 +146,12 @@
EOM;
}
}
+ else
+ echo "<b>Database query failed: " .
da_sql_error($link,$config) . "</b><br>\n";
}
+else
+ echo "<b>Could not connect to SQL database</b><br>\n";
+
echo <<<EOM
</table>
<tr><td>
@@ -197,10 +212,14 @@
}
if ($server == '' || $server == 'all')
echo "<option selected value=\"all\">all\n";
+else
+ echo "<option value=\"all\">all\n";
?>
</select>
</td>
-<td><input type="text" name="login" size="11" value="<?php echo $login
?>"></td>
+<td>
+<input type="text" name="login" size="11" value="<?php echo $login?>">
+</td>
</tr>
</table></td></tr></form>
</table>
--- /usr/local/cvs/radiusd/dialup_admin/htdocs/user_stats.php3 2003-07-23
16:34:09.000000000 +0200
+++ /usr/local/dialup_admin/htdocs/user_stats.php3 2003-11-10 19:15:41.000000000
+0100
@@ -37,7 +37,7 @@
if ($sortby != '')
$order_attr = ($sortby == 'num') ? 'ConnNum' : 'ConnTotDuration';
else
- $order_attr = 'ConnNum';
+ $order_attr = 'ConnTotDuration';
if ($server != '' && $server != 'all')
$server_str = "AND NASIPAddress = '$server'";
$login_str = ($login) ? "AND UserName = '$login' " : '';
@@ -83,42 +83,52 @@
<p>
<table border=1 bordercolordark=#ffffe0 bordercolorlight=#000000 width=100%
cellpadding=2 cellspacing=0 bgcolor="#ffffe0" valign=top>
<tr bgcolor="#d0ddb0">
- <th>#</th><th>login</th><th>date</th><th>server</th><th>connections
number</th><th>connections duration</th><th>upload</th><th>download</th>
+ <th>#</th><th>username</th><th>last login</th><th>server</th><th>connections
number</th><th>connections duration</th><th>upload</th><th>download</th>
</tr>
<?php
$link = @da_sql_pconnect($config);
if ($link){
- $search = @da_sql_query($link,$config,
- "SELECT * FROM $config[sql_total_accounting_table]
- WHERE AcctDate >= '$start' AND AcctDate <= '$stop' $server_str $login_str
- ORDER BY $order_attr $order $limit;");
-
+ if ($config[general_stats_use_totacct] == 'yes')
+ $search = @da_sql_query($link,$config,
+ "SELECT * FROM $config[sql_total_accounting_table]
+ WHERE AcctDate >= '$start' AND AcctDate <= '$stop' $server_str
$login_str
+ ORDER BY $order_attr $order $limit;");
+ else
+ $search = @da_sql_query($link,$config,
+ "SELECT UserName,sum(AcctSessionTime) AS
ConnTotDuration,count(RadAcctID) AS ConnNum,
+ sum(AcctInputOctets) AS OutputOctets, sum(AcctOutputOctets) AS
InputOctets, NASIPAddress,
+ max(AcctStopTime) AS AcctStopTime FROM $config[sql_accounting_table]
+ WHERE AcctStopTime >= '$start' AND AcctStopTime <= '$stop' $server_str
$login_str
+ GROUP BY UserName,NASIPAddress ORDER BY $order_attr $order $limit;");
if ($search){
while( $row = @da_sql_fetch_array($search,$config) ){
$num++;
- $acct_login = $row[UserName];
+ $acct_login = $row[username];
if ($acct_login == '')
$acct_login = '-';
else
$acct_login = "<a
href=\"user_admin.php3?login=$acct_login\" title=\"Edit user
$acct_login\">$acct_login</a>";
- $acct_time = $row[ConnTotDuration];
+ $acct_time = $row[conntotduration];
$acct_time = time2str($acct_time);
- $acct_conn_num = $row[ConnNum];
- $acct_date = $row[AcctDate];
- $acct_upload = $row[InputOctets];
- $acct_download = $row[OutputOctets];
+ $acct_conn_num = $row[connnum];
+ if ($config[general_stats_use_totacct] == 'yes')
+ $acct_date = $row[acctdate];
+ else
+ $acct_date = substr($row[acctstoptime],0,10);
+ $acct_upload = $row[inputoctets];
+ $acct_download = $row[outputoctets];
$acct_upload = bytes2str($acct_upload);
$acct_download = bytes2str($acct_download);
- $acct_server = $da_name_cache[$row[NASIPAddress]];
+ $acct_server = $da_name_cache[$row[nasipaddress]];
if (!isset($acct_server)){
- $acct_server = @gethostbyaddr($row[NASIPAddress]);
+ $acct_server = @gethostbyaddr($row[nasipaddress]);
if (!isset($da_name_cache) &&
$config[general_use_session] == 'yes'){
- $da_name_cache[$row[NASIPAddress]] =
$acct_server;
+ $da_name_cache[$row[nasipaddress]] =
$acct_server;
session_register('da_name_cache');
}
else
- $da_name_cache[$row[NASIPAddress]] =
$acct_server;
+ $da_name_cache[$row[nasipaddress]] =
$acct_server;
}
if ($acct_server == '')
$acct_server = '-';
@@ -136,7 +146,12 @@
EOM;
}
}
+ else
+ echo "<b>Database query failed: " . da_sql_error($link,$config) .
"</b><br>\n";
}
+else
+ echo "<b>Could not connect to SQL database</b><br>\n";
+
echo <<<EOM
</table>
<tr><td>
@@ -197,10 +212,14 @@
}
if ($server == '' || $server == 'all')
echo "<option selected value=\"all\">all\n";
+else
+ echo "<option value=\"all\">all\n";
?>
</select>
</td>
-<td><input type="text" name="login" size="11" value="<?php echo $login ?>"></td>
+<td>
+<input type="text" name="login" size="11" value="<?php echo $login?>">
+</td>
</tr>
</table></td></tr></form>
</table>