index.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/auth.php");
  3. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/sqlt.php");
  4. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/languages/" . $language . ".php");
  5. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/header.php");
  6. $default_date_shift='d';
  7. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/datefilter.php");
  8. $default_sort='in';
  9. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/oufilter.php");
  10. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/sortfilter.php");
  11. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/gatefilter.php");
  12. ?>
  13. <div id="cont">
  14. <b>Трафик пользователей</b>
  15. <form action="index.php" method="post">
  16. Группа:&nbsp<?php print_ou_select($db_link,'ou',$rou); ?>
  17. Начало:&nbsp<input type="date" name="date_start" value="<?php echo $date1; ?>" />
  18. Конец:&nbsp<input type="date" name="date_stop" value="<?php echo $date2; ?>" />
  19. Шлюз:&nbsp<?php print_gateway_select($db_link, 'gateway', $rgateway); ?>
  20. <input type="submit" value="OK">
  21. </form>
  22. <?php
  23. print "<br><br>\n";
  24. print "<table class=\"data\" width=\"650\" cellspacing=\"1\" cellpadding=\"4\">\n";
  25. print "<tr align=\"center\">\n";
  26. print "<td ><b><a href=index.php?sort=login&order=$new_order>Логин</a></b></td>\n";
  27. print "<td ><b>Gate</b></td>\n";
  28. print "<td ><b><a href=index.php?sort=in&order=$new_order>Входящий</a></b></td>\n";
  29. print "<td ><b><a href=index.php?sort=out&order=$new_order>Исходящий<a></b></td>\n";
  30. print "</tr>\n";
  31. $gateway_list = get_gateways($db_link);
  32. $trafSQL = "SELECT User_stats.auth_id, User_stats.router_id, SUM( byte_in ) AS tin, SUM( byte_out ) AS tout
  33. FROM User_stats WHERE (date(User_stats.timestamp)>='$date1') AND (date(User_stats.timestamp)<'$date2') AND (byte_in>0 or byte_out>0)";
  34. if ($rgateway == 0) {
  35. $trafSQL = $trafSQL . " GROUP by User_stats.auth_id,User_stats.router_id";
  36. } else {
  37. $trafSQL = $trafSQL . " AND User_stats.router_id=$rgateway GROUP by User_stats.auth_id,User_stats.router_id";
  38. }
  39. $userSQL = "SELECT User_list.login as login, User_auth.user_id as user_id, User_auth.id as auth_id FROM User_list,User_auth WHERE User_list.id=User_auth.user_id";
  40. if ($rou == 0) {
  41. $userSQL = $userSQL . " ORDER BY User_auth.id";
  42. } else {
  43. $userSQL = $userSQL . " AND User_list.ou_id=$rou ORDER BY User_auth.id";
  44. }
  45. $users = mysqli_query($db_link, $userSQL);
  46. while (list ($f_login, $f_user_id, $f_auth_id) = mysqli_fetch_array($users)) {
  47. $user_ref[$f_auth_id][id] = $f_user_id;
  48. $user_ref[$f_auth_id][login] = $f_login;
  49. }
  50. $total_in = 0;
  51. $total_out = 0;
  52. unset($user_traf);
  53. $traf = mysqli_query($dbt_link, $trafSQL);
  54. while (list ($s_auth_id, $s_router_id, $traf_day_in, $traf_day_out) = mysqli_fetch_array($traf)) {
  55. if (! isset($user_ref{$s_auth_id}{id})) { continue; }
  56. if ($traf_day_in + $traf_day_out > 0) {
  57. $u_id = $user_ref[$s_auth_id][id];
  58. if (! isset($user_traf[$u_id][$s_router_id][in])) {
  59. $user_traf[$u_id][$s_router_id][in] = 0;
  60. }
  61. if (! isset($user_traf[$u_id][$s_router_id][out])) {
  62. $user_traf[$u_id][$s_router_id][out] = 0;
  63. }
  64. if (! isset($user_traf[$u_id][$s_router_id][login])) {
  65. $user_traf[$u_id][$s_router_id][login] = $user_ref[$s_auth_id][login];
  66. }
  67. $user_traf[$u_id][$s_router_id][in] += $traf_day_in;
  68. $user_traf[$u_id][$s_router_id][out] += $traf_day_out;
  69. $total_in += $traf_day_in;
  70. $total_out += $traf_day_out;
  71. }
  72. }
  73. $tmp_table = "month_stats_" . $_SESSION['session_id'];
  74. $tSQL = "CREATE TEMPORARY TABLE $tmp_table (`id` int(11) unsigned NOT NULL,`login` varchar(50) not null,`router` varchar(50) not null, `in` bigint, `out` bigint) DEFAULT CHARSET=utf8";
  75. mysqli_query($db_link, $tSQL);
  76. foreach ($user_traf as $u_id => $user_stats) {
  77. foreach ($user_stats as $s_router_id => $user_info) {
  78. $tSQL = "insert into $tmp_table (`id`,`login`,`router`,`in`,`out`) values('$u_id','$user_info[login]','$gateway_list[$s_router_id]','$user_info[in]','$user_info[out]')";
  79. $result = mysqli_query($db_link, $tSQL);
  80. }
  81. }
  82. $tSQL = "Select `id`,`login`,`router`,`in`,`out` from `$tmp_table` order by `$sort_field` $order";
  83. $user_stats = mysqli_query($db_link, $tSQL);
  84. while (list ($s_id, $s_login, $s_router, $s_in, $s_out) = mysqli_fetch_array($user_stats)) {
  85. $cl = "data";
  86. if ($s_out > 2 * $s_in) { $cl = "nb"; }
  87. print "<tr align=center align=center class=\"tr1\" onmouseover=\"className='tr2'\" onmouseout=\"className='tr1'\">\n";
  88. print "<td class=\"$cl\"><a href=userday.php?id=$s_id&date_start=$date1&date_stop=$date2>$s_login</a></td>\n";
  89. print "<td class=\"$cl\">$s_router</td>\n";
  90. print "<td class=\"$cl\">" . fbytes($s_in) . "</td>\n";
  91. print "<td class=\"$cl\">" . fbytes($s_out) . "</td>\n";
  92. print "</tr>\n";
  93. }
  94. print "<tr align=center align=center class=\"tr1\" onmouseover=\"className='tr2'\" onmouseout=\"className='tr1'\">\n";
  95. print "<td class=\"data\" colspan=2><b>Итого</b></td>\n";
  96. print "<td class=\"data\"><b>" . fbytes($total_in) . "</b></td>\n";
  97. print "<td class=\"data\"><b>" . fbytes($total_out) . "</b></td>\n";
  98. print "</tr>\n";
  99. ?>
  100. </table>
  101. <?
  102. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/footer.php");
  103. ?>