Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/techsneeze/dmarcts-report-viewer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Basmaison <fabien@arkhi.org>2019-03-21 17:56:22 +0300
committerFabien Basmaison <fabien@arkhi.org>2019-03-21 17:56:22 +0300
commit1814460eeafca5395bb58ca5250c7d4c686aa160 (patch)
treeddb8d26c83093f3784b22e08bb74a9c988b18bf7 /dmarcts-report-viewer.php
parentfd64fbf802c3d37e557a3bca08b0772a4f386b71 (diff)
Change all tabs into spaces instead of a mix of both.
Diffstat (limited to 'dmarcts-report-viewer.php')
-rw-r--r--dmarcts-report-viewer.php344
1 files changed, 172 insertions, 172 deletions
diff --git a/dmarcts-report-viewer.php b/dmarcts-report-viewer.php
index 0ec0db3..c9a138f 100644
--- a/dmarcts-report-viewer.php
+++ b/dmarcts-report-viewer.php
@@ -33,55 +33,55 @@
//####################################################################
function get_status_color($row) {
- $status = "";
- if (($row['dkimresult'] == "fail") && ($row['spfresult'] == "fail")) {
- $status="red";
- } elseif (($row['dkimresult'] == "fail") || ($row['spfresult'] == "fail")) {
- $status="orange";
- } elseif (($row['dkimresult'] == "pass") && ($row['spfresult'] == "pass")) {
- $status="lime";
- } else {
- $status="yellow";
- }
- return $status;
+ $status = "";
+ if (($row['dkimresult'] == "fail") && ($row['spfresult'] == "fail")) {
+ $status="red";
+ } elseif (($row['dkimresult'] == "fail") || ($row['spfresult'] == "fail")) {
+ $status="orange";
+ } elseif (($row['dkimresult'] == "pass") && ($row['spfresult'] == "pass")) {
+ $status="lime";
+ } else {
+ $status="yellow";
+ }
+ return $status;
}
function format_date($date, $format) {
- $answer = date($format, strtotime($date));
- return $answer;
+ $answer = date($format, strtotime($date));
+ return $answer;
};
function tmpl_reportList($allowed_reports, $host_lookup = 1, $sort_order, $dom_select = '', $org_select = '', $per_select = '', $reportid) {
- $reportlist[] = "";
- $reportlist[] = "<!-- Start of report list -->";
-
- $reportlist[] = "<h1 class='main'>DMARC Reports" . ($dom_select == '' ? '' : " for " . htmlentities($dom_select)) . "</h1>";
- $reportlist[] = "<table class='reportlist'>";
- $reportlist[] = " <thead>";
- $reportlist[] = " <tr>";
- $reportlist[] = " <th></th>";
- $reportlist[] = " <th>Start Date</th>";
- $reportlist[] = " <th>End Date</th>";
- $reportlist[] = " <th>Domain</th>";
- $reportlist[] = " <th>Reporting Organization</th>";
- $reportlist[] = " <th>Report ID</th>";
- $reportlist[] = " <th>Messages</th>";
- $reportlist[] = " </tr>";
- $reportlist[] = " </thead>";
-
- $reportlist[] = " <tbody>";
- $reportsum = 0;
-
- foreach ($allowed_reports[BySerial] as $row) {
- $row = array_map('htmlspecialchars', $row);
- $date_output_format = "r";
- $reportlist[] = " <tr" . ( $reportid == $row['serial'] ? " class='selected' " : "" ) . ">";
- $reportlist[] = " <td class='right'><span class=\"circle_".get_status_color($row)."\"></span></td>";
- $reportlist[] = " <td class='right'>". format_date($row['mindate'], $date_output_format). "</td>";
- $reportlist[] = " <td class='right'>". format_date($row['maxdate'], $date_output_format). "</td>";
- $reportlist[] = " <td class='center'>". $row['domain']. "</td>";
- $reportlist[] = " <td class='center'>". $row['org']. "</td>";
+ $reportlist[] = "";
+ $reportlist[] = "<!-- Start of report list -->";
+
+ $reportlist[] = "<h1 class='main'>DMARC Reports" . ($dom_select == '' ? '' : " for " . htmlentities($dom_select)) . "</h1>";
+ $reportlist[] = "<table class='reportlist'>";
+ $reportlist[] = " <thead>";
+ $reportlist[] = " <tr>";
+ $reportlist[] = " <th></th>";
+ $reportlist[] = " <th>Start Date</th>";
+ $reportlist[] = " <th>End Date</th>";
+ $reportlist[] = " <th>Domain</th>";
+ $reportlist[] = " <th>Reporting Organization</th>";
+ $reportlist[] = " <th>Report ID</th>";
+ $reportlist[] = " <th>Messages</th>";
+ $reportlist[] = " </tr>";
+ $reportlist[] = " </thead>";
+
+ $reportlist[] = " <tbody>";
+ $reportsum = 0;
+
+ foreach ($allowed_reports[BySerial] as $row) {
+ $row = array_map('htmlspecialchars', $row);
+ $date_output_format = "r";
+ $reportlist[] = " <tr" . ( $reportid == $row['serial'] ? " class='selected' " : "" ) . ">";
+ $reportlist[] = " <td class='right'><span class=\"circle_".get_status_color($row)."\"></span></td>";
+ $reportlist[] = " <td class='right'>". format_date($row['mindate'], $date_output_format). "</td>";
+ $reportlist[] = " <td class='right'>". format_date($row['maxdate'], $date_output_format). "</td>";
+ $reportlist[] = " <td class='center'>". $row['domain']. "</td>";
+ $reportlist[] = " <td class='center'>". $row['org']. "</td>";
$reportlist[] = " <td class='center'><a href='?report=" . $row['serial']
. ( $host_lookup ? "&hostlookup=1" : "&hostlookup=0" )
. ( $sort_order ? "&sortorder=1" : "&sortorder=0" )
@@ -89,107 +89,107 @@ function tmpl_reportList($allowed_reports, $host_lookup = 1, $sort_order, $dom_s
. ($org_select == '' ? '' : "&o=" . urlencode($org_select))
. ($per_select == '' ? "&p=all" : "&p=" . urlencode($per_select))
. "#rpt". $row['serial'] . "'>". $row['reportid']. "</a></td>";
- $reportlist[] = " <td class='center'>". number_format($row['rcount']+0,0). "</td>";
- $reportlist[] = " </tr>";
- $reportsum += $row['rcount'];
- }
- $reportlist[] = "<tr class='sum'><td></td><td></td><td></td><td></td><td class='right'>Sum:</td><td class='center'>".number_format($reportsum,0)."</td></tr>";
- $reportlist[] = " </tbody>";
+ $reportlist[] = " <td class='center'>". number_format($row['rcount']+0,0). "</td>";
+ $reportlist[] = " </tr>";
+ $reportsum += $row['rcount'];
+ }
+ $reportlist[] = "<tr class='sum'><td></td><td></td><td></td><td></td><td class='right'>Sum:</td><td class='center'>".number_format($reportsum,0)."</td></tr>";
+ $reportlist[] = " </tbody>";
- $reportlist[] = "</table>";
+ $reportlist[] = "</table>";
- $reportlist[] = "<!-- End of report list -->";
- $reportlist[] = "";
+ $reportlist[] = "<!-- End of report list -->";
+ $reportlist[] = "";
- #indent generated html by 2 extra spaces
- return implode("\n ",$reportlist);
+ #indent generated html by 2 extra spaces
+ return implode("\n ",$reportlist);
}
function tmpl_reportData($reportnumber, $allowed_reports, $host_lookup = 1, $sort_order) {
- if (!$reportnumber) {
- return "";
- }
-
- $reportdata[] = "";
- $reportdata[] = "<!-- Start of report rata -->";
- $reportsum = 0;
-
- if (isset($allowed_reports[BySerial][$reportnumber])) {
- $row = $allowed_reports[BySerial][$reportnumber];
- $row = array_map('htmlspecialchars', $row);
- $reportdata[] = "<a id='rpt".$reportnumber."'></a>";
- $reportdata[] = "<div class='center reportdesc'><p> Report from ".$row['org']." for ".$row['domain']."<br>(". format_date($row['mindate'], "r" ). " - ".format_date($row['maxdate'], "r" ).")<br> Policies: adkim=" . $row['policy_adkim'] . ", aspf=" . $row['policy_aspf'] . ", p=" . $row['policy_p'] . ", sp=" . $row['policy_sp'] . ", pct=" . $row['policy_pct'] . "</p></div>";
- } else {
- return "Unknown report number!";
- }
-
- $reportdata[] = "<table class='reportdata'>";
- $reportdata[] = " <thead>";
- $reportdata[] = " <tr>";
- $reportdata[] = " <th>IP Address</th>";
- $reportdata[] = " <th>Host Name</th>";
- $reportdata[] = " <th>Message Count</th>";
- $reportdata[] = " <th>Disposition</th>";
- $reportdata[] = " <th>Reason</th>";
- $reportdata[] = " <th>DKIM Domain</th>";
- $reportdata[] = " <th>Raw DKIM Result</th>";
- $reportdata[] = " <th>SPF Domain</th>";
- $reportdata[] = " <th>Raw SPF Result</th>";
- $reportdata[] = " </tr>";
- $reportdata[] = " </thead>";
-
- $reportdata[] = " <tbody>";
-
- global $mysqli;
- $sql = "SELECT * FROM rptrecord where serial = $reportnumber";
- $query = $mysqli->query($sql) or die("Query failed: ".$mysqli->error." (Error #" .$mysqli->errno.")");
- while($row = $query->fetch_assoc()) {
- $status = get_status_color($row);
-
- if ( $row['ip'] ) {
- $ip = long2ip($row['ip']);
- } elseif ( $row['ip6'] ) {
- $ip = inet_ntop($row['ip6']);
- } else {
- $ip = "-";
- }
-
- /* escape html characters after exploring binary values, which will be messed up */
- $row = array_map('htmlspecialchars', $row);
-
- $reportdata[] = " <tr class='".$status."'>";
- $reportdata[] = " <td>". $ip. "</td>";
- if ( $host_lookup ) {
- $reportdata[] = " <td>". gethostbyaddr($ip). "</td>";
- } else {
- $reportdata[] = " <td>#off#</td>";
- }
- $reportdata[] = " <td>". $row['rcount']. "</td>";
- $reportdata[] = " <td>". $row['disposition']. "</td>";
- $reportdata[] = " <td>". $row['reason']. "</td>";
- $reportdata[] = " <td>". $row['dkimdomain']. "</td>";
- $reportdata[] = " <td>". $row['dkimresult']. "</td>";
- $reportdata[] = " <td>". $row['spfdomain']. "</td>";
- $reportdata[] = " <td>". $row['spfresult']. "</td>";
- $reportdata[] = " </tr>";
-
- $reportsum += $row['rcount'];
- }
- $reportdata[] = "<tr><td></td><td></td><td>$reportsum</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
- $reportdata[] = " </tbody>";
- $reportdata[] = "</table>";
-
- $reportdata[] = "<!-- End of report rata -->";
- $reportdata[] = "";
-
- #indent generated html by 2 extra spaces
- return implode("\n ",$reportdata);
+ if (!$reportnumber) {
+ return "";
+ }
+
+ $reportdata[] = "";
+ $reportdata[] = "<!-- Start of report rata -->";
+ $reportsum = 0;
+
+ if (isset($allowed_reports[BySerial][$reportnumber])) {
+ $row = $allowed_reports[BySerial][$reportnumber];
+ $row = array_map('htmlspecialchars', $row);
+ $reportdata[] = "<a id='rpt".$reportnumber."'></a>";
+ $reportdata[] = "<div class='center reportdesc'><p> Report from ".$row['org']." for ".$row['domain']."<br>(". format_date($row['mindate'], "r" ). " - ".format_date($row['maxdate'], "r" ).")<br> Policies: adkim=" . $row['policy_adkim'] . ", aspf=" . $row['policy_aspf'] . ", p=" . $row['policy_p'] . ", sp=" . $row['policy_sp'] . ", pct=" . $row['policy_pct'] . "</p></div>";
+ } else {
+ return "Unknown report number!";
+ }
+
+ $reportdata[] = "<table class='reportdata'>";
+ $reportdata[] = " <thead>";
+ $reportdata[] = " <tr>";
+ $reportdata[] = " <th>IP Address</th>";
+ $reportdata[] = " <th>Host Name</th>";
+ $reportdata[] = " <th>Message Count</th>";
+ $reportdata[] = " <th>Disposition</th>";
+ $reportdata[] = " <th>Reason</th>";
+ $reportdata[] = " <th>DKIM Domain</th>";
+ $reportdata[] = " <th>Raw DKIM Result</th>";
+ $reportdata[] = " <th>SPF Domain</th>";
+ $reportdata[] = " <th>Raw SPF Result</th>";
+ $reportdata[] = " </tr>";
+ $reportdata[] = " </thead>";
+
+ $reportdata[] = " <tbody>";
+
+ global $mysqli;
+ $sql = "SELECT * FROM rptrecord where serial = $reportnumber";
+ $query = $mysqli->query($sql) or die("Query failed: ".$mysqli->error." (Error #" .$mysqli->errno.")");
+ while($row = $query->fetch_assoc()) {
+ $status = get_status_color($row);
+
+ if ( $row['ip'] ) {
+ $ip = long2ip($row['ip']);
+ } elseif ( $row['ip6'] ) {
+ $ip = inet_ntop($row['ip6']);
+ } else {
+ $ip = "-";
+ }
+
+ /* escape html characters after exploring binary values, which will be messed up */
+ $row = array_map('htmlspecialchars', $row);
+
+ $reportdata[] = " <tr class='".$status."'>";
+ $reportdata[] = " <td>". $ip. "</td>";
+ if ( $host_lookup ) {
+ $reportdata[] = " <td>". gethostbyaddr($ip). "</td>";
+ } else {
+ $reportdata[] = " <td>#off#</td>";
+ }
+ $reportdata[] = " <td>". $row['rcount']. "</td>";
+ $reportdata[] = " <td>". $row['disposition']. "</td>";
+ $reportdata[] = " <td>". $row['reason']. "</td>";
+ $reportdata[] = " <td>". $row['dkimdomain']. "</td>";
+ $reportdata[] = " <td>". $row['dkimresult']. "</td>";
+ $reportdata[] = " <td>". $row['spfdomain']. "</td>";
+ $reportdata[] = " <td>". $row['spfresult']. "</td>";
+ $reportdata[] = " </tr>";
+
+ $reportsum += $row['rcount'];
+ }
+ $reportdata[] = "<tr><td></td><td></td><td>$reportsum</td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
+ $reportdata[] = " </tbody>";
+ $reportdata[] = "</table>";
+
+ $reportdata[] = "<!-- End of report rata -->";
+ $reportdata[] = "";
+
+ #indent generated html by 2 extra spaces
+ return implode("\n ",$reportdata);
}
function tmpl_page ($body, $reportid, $host_lookup = 1, $sort_order, $dom_select, $domains = array(),$cssfile, $org_select, $orgs = array(), $per_select, $periods = array() ) {
- $html = array();
+ $html = array();
$url_hswitch = ( $reportid ? "?report=$reportid&hostlookup=" : "?hostlookup=" )
. ($host_lookup ? "0" : "1" )
. ( "&sortorder=" ) . ($sort_order)
@@ -202,29 +202,29 @@ function tmpl_page ($body, $reportid, $host_lookup = 1, $sort_order, $dom_select
. (isset($dom_select) && $dom_select <> "" ? "&d=$dom_select" : "" )
;
- $html[] = "<!DOCTYPE html>";
- $html[] = "<html>";
- $html[] = " <head>";
- $html[] = " <title>DMARC Report Viewer</title>";
- $html[] = " <link rel='stylesheet' href='$cssfile'>";
- $html[] = " </head>";
+ $html[] = "<!DOCTYPE html>";
+ $html[] = "<html>";
+ $html[] = " <head>";
+ $html[] = " <title>DMARC Report Viewer</title>";
+ $html[] = " <link rel='stylesheet' href='$cssfile'>";
+ $html[] = " </head>";
- $html[] = " <body>";
-
-
+ $html[] = " <body>";
+
+
# optionblock form
#--------------------------------------------------------------------------
- $html[] = " <div class='optionblock'><form action=\"?\" method=\"post\">";
-
-
+ $html[] = " <div class='optionblock'><form action=\"?\" method=\"post\">";
+
+
# handle host lookup (on/off should not reset selected report)
#--------------------------------------------------------------------------
- $html[] = "<div class='options'><span class='optionlabel'>Hostname(s):</span> <input type=\"radio\" name=\"selHostLookup\" value=\"1\" onchange=\"this.form.submit()\"" . ($host_lookup ? " checked=\"checked\"" : "" ) . "> on<input type=\"radio\" name=\"selHostLookup\" value=\"0\" onchange=\"this.form.submit()\"" . ($host_lookup ? "" : " checked=\"checked\"" ) . "> off</div>";
+ $html[] = "<div class='options'><span class='optionlabel'>Hostname(s):</span> <input type=\"radio\" name=\"selHostLookup\" value=\"1\" onchange=\"this.form.submit()\"" . ($host_lookup ? " checked=\"checked\"" : "" ) . "> on<input type=\"radio\" name=\"selHostLookup\" value=\"0\" onchange=\"this.form.submit()\"" . ($host_lookup ? "" : " checked=\"checked\"" ) . "> off</div>";
# handle sort direction
#--------------------------------------------------------------------------
- $html[] = "<div class='options'><span class='optionlabel'>Sort order:</span> <input type=\"radio\" name=\"selOrder\" value=\"1\" onchange=\"this.form.submit()\"" . ($sort_order ? " checked=\"checked\"" : "" ) . "> ascending<input type=\"radio\" name=\"selOrder\" value=\"0\" onchange=\"this.form.submit()\"" . ($sort_order ? "" : " checked=\"checked\"" ) . "> decending</div>";
+ $html[] = "<div class='options'><span class='optionlabel'>Sort order:</span> <input type=\"radio\" name=\"selOrder\" value=\"1\" onchange=\"this.form.submit()\"" . ($sort_order ? " checked=\"checked\"" : "" ) . "> ascending<input type=\"radio\" name=\"selOrder\" value=\"0\" onchange=\"this.form.submit()\"" . ($sort_order ? "" : " checked=\"checked\"" ) . "> decending</div>";
# handle domains
@@ -306,11 +306,11 @@ function tmpl_page ($body, $reportid, $host_lookup = 1, $sort_order, $dom_select
# footter
#--------------------------------------------------------------------------
- $html[] = " <div class='footer'>Brought to you by <a href='http://www.techsneeze.com'>TechSneeze.com</a> - <a href='mailto:dave@techsneeze.com'>dave@techsneeze.com</a></div>";
- $html[] = " </body>";
- $html[] = "</html>";
+ $html[] = " <div class='footer'>Brought to you by <a href='http://www.techsneeze.com'>TechSneeze.com</a> - <a href='mailto:dave@techsneeze.com'>dave@techsneeze.com</a></div>";
+ $html[] = " </body>";
+ $html[] = "</html>";
- return implode("\n",$html);
+ return implode("\n",$html);
}
@@ -397,10 +397,10 @@ if( $per_select == "all" ) {
// --------------------------------------------------------------------------
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport);
if ($mysqli->connect_errno) {
- echo "Error: Failed to make a MySQL connection, here is why: \n";
- echo "Errno: " . $mysqli->connect_errno . "\n";
- echo "Error: " . $mysqli->connect_error . "\n";
- exit;
+ echo "Error: Failed to make a MySQL connection, here is why: \n";
+ echo "Errno: " . $mysqli->connect_errno . "\n";
+ echo "Error: " . $mysqli->connect_error . "\n";
+ exit;
}
define("BySerial", 1);
@@ -479,14 +479,14 @@ $sql = "SELECT report.* , sum(rptrecord.rcount) AS rcount, MIN(rptrecord.dkimres
$query = $mysqli->query($sql) or die("Query failed: ".$mysqli->error." (Error #" .$mysqli->errno.")");
while($row = $query->fetch_assoc()) {
- //todo: check ACL if this row is allowed
- if (true) {
- //add data by serial
- $allowed_reports[BySerial][$row['serial']] = $row;
- //make a list of serials by domain and by organisation
- //$allowed_reports[ByDomain][$row['domain']][] = $row['serial'];
- //$allowed_reports[ByOrganisation][$row['org']][] = $row['serial'];
- }
+ //todo: check ACL if this row is allowed
+ if (true) {
+ //add data by serial
+ $allowed_reports[BySerial][$row['serial']] = $row;
+ //make a list of serials by domain and by organisation
+ //$allowed_reports[ByDomain][$row['domain']][] = $row['serial'];
+ //$allowed_reports[ByOrganisation][$row['org']][] = $row['serial'];
+ }
}
// Generate Page with report list and report data (if a report is selected).
@@ -494,15 +494,15 @@ while($row = $query->fetch_assoc()) {
echo tmpl_page( ""
.tmpl_reportList($allowed_reports, $hostlookup, $sortorder, $dom_select, $org_select, $per_select, $reportid)
.tmpl_reportData($reportid, $allowed_reports, $hostlookup, $sortorder )
- , $reportid
- , $hostlookup
- , $sortorder
- , $dom_select
- , $domains
- , $cssfile
- , $org_select
- , $orgs
- , $per_select
- , $periods
+ , $reportid
+ , $hostlookup
+ , $sortorder
+ , $dom_select
+ , $domains
+ , $cssfile
+ , $org_select
+ , $orgs
+ , $per_select
+ , $periods
);
?>