authlog.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/auth.php");
  3. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/languages/" . HTML_LANG . ".php");
  4. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/header.php");
  5. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/datetimefilter.php");
  6. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/loglevelfilter.php");
  7. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/logfilter.php");
  8. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/authidfilter.php");
  9. if (!isset($auth_id)) { header('Location: /admin/logs/index.php', true, 301); exit; }
  10. ?>
  11. <div id="cont">
  12. <br>
  13. <form action="<?=$_SERVER['PHP_SELF']?>" method="post">
  14. <input name="auth_id" value="<?php print $auth_id; ?>" hidden=true>
  15. <?php print_date_fields($date1,$date2,$date_shift); ?>
  16. <?php echo WEB_log_level_display; ?>:<?php print_loglevel_select('display_log_level',$display_log_level); ?>
  17. <?php print WEB_rows_at_page."&nbsp"; print_row_at_pages('rows',$displayed); ?>
  18. <input type="submit" value="<?php echo WEB_btn_show; ?>"><br><br>
  19. <?php echo WEB_log_filter_source; ?>:<input name="customer" value="<?php echo $fcustomer; ?>" />
  20. <?php echo WEB_log_message; ?>:<input name="message" value="<?php echo $fmessage; ?>" />
  21. </form>
  22. <?php
  23. $params = [$date1, $date2];
  24. $log_filter_parts = [];
  25. // Уровень логирования
  26. if ($display_log_level == L_ERROR) {
  27. $log_filter_parts[] = "level = ?";
  28. $params[] = L_ERROR;
  29. } elseif ($display_log_level == L_WARNING) {
  30. $log_filter_parts[] = "level <= ?";
  31. $params[] = L_WARNING;
  32. } elseif ($display_log_level == L_INFO) {
  33. $log_filter_parts[] = "level <= ?";
  34. $params[] = L_INFO;
  35. } elseif ($display_log_level == L_VERBOSE) {
  36. $log_filter_parts[] = "level <= ?";
  37. $params[] = L_VERBOSE;
  38. }
  39. // L_DEBUG — ничего не добавляем (все уровни)
  40. $log_filter_parts[] = "auth_id = ?";
  41. $params[] = $auth_id;
  42. if (!empty($fcustomer)) {
  43. $log_filter_parts[] = "customer LIKE ?";
  44. $params[] = '%' . $fcustomer . '%';
  45. }
  46. if (!empty($fmessage)) {
  47. $log_filter_parts[] = "message LIKE ?";
  48. $params[] = '%' . $fmessage . '%';
  49. }
  50. // Собираем фильтр
  51. $log_filter = !empty($log_filter_parts) ? ' AND ' . implode(' AND ', $log_filter_parts) : '';
  52. $countSQL = "SELECT COUNT(*) FROM worklog WHERE ts >= ? AND ts < ?" . $log_filter;
  53. $count_records = get_single_field($db_link, $countSQL, $params);
  54. $total=ceil($count_records/$displayed);
  55. if ($page>$total) { $page=$total; }
  56. if ($page<1) { $page=1; }
  57. $start = ($page * $displayed) - $displayed;
  58. print_navigation($page_url,$page,$displayed,$count_records,$total);
  59. #speedup paging
  60. $sSQL = "SELECT ts,customer,message,level FROM worklog as S JOIN (SELECT id FROM worklog WHERE ts>=? AND ts<? $log_filter
  61. ORDER BY id DESC
  62. LIMIT $displayed OFFSET $start) AS I ON S.id = I.id";
  63. $params[]=$displayed;
  64. $params[]=$start;
  65. $userlog = get_records_sql($db_link, $sSQL, $params);
  66. ?>
  67. <br>
  68. <table class="data" width="90%">
  69. <tr align="center">
  70. <td class="data" width=150><b><?php echo WEB_log_time; ?></b></td>
  71. <td class="data"><b><?php echo WEB_log_manager; ?></b></td>
  72. <td class="data"><b><?php echo WEB_log_level; ?></b></td>
  73. <td class="data"><b><?php echo WEB_log_event; ?></b></td>
  74. </tr>
  75. <?php
  76. foreach ($userlog as $row) {
  77. print "<tr align=center class=\"tr1\" onmouseover=\"className='tr2'\" onmouseout=\"className='tr1'\">\n";
  78. print "<td class=\"data\">" . get_datetime_display($row['ts']) . "</td>\n";
  79. print "<td class=\"data\">" . $row['customer'] . "</td>\n";
  80. $msg_level = 'INFO';
  81. if ($row['level'] == L_ERROR) { $msg_level='ERROR'; }
  82. if ($row['level'] == L_DEBUG) { $msg_level='DEBUG'; }
  83. if ($row['level'] == L_VERBOSE) { $msg_level='VERBOSE'; }
  84. print "<td class=\"data\">" . $msg_level . "</td>\n";
  85. $print_msg = expand_log_str($db_link, $row['message']);
  86. print "<td class=\"data\" align=left>" . $print_msg . "</td>\n";
  87. print "</tr>\n";
  88. }
  89. print "</table>\n";
  90. print_navigation($page_url,$page,$displayed,$count_records,$total);
  91. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/footer.php");
  92. ?>