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:
authorDave <dave@techsneeze.com>2016-03-11 21:44:11 +0300
committerDave <dave@techsneeze.com>2016-03-11 21:44:11 +0300
commitbae1653986f3fdd1760285c4332abd85706f4ad4 (patch)
treebda95227b8fc90be9653aed95f616dfba728b5af
parente4d2c17fb010072925f7135eee03128d7dc2f028 (diff)
parent0dc583ba64df5bd60e8e4d16fe82ae4a20c316da (diff)
Merge branch 'master' of https://github.com/techsneeze/dmarcts-report
-rw-r--r--dmarcts-report-viewer.php65
1 files changed, 43 insertions, 22 deletions
diff --git a/dmarcts-report-viewer.php b/dmarcts-report-viewer.php
index c9aea26..f5742ce 100644
--- a/dmarcts-report-viewer.php
+++ b/dmarcts-report-viewer.php
@@ -39,7 +39,7 @@ function format_date($date, $format) {
return $answer;
};
-function tmpl_reportList() {
+function tmpl_reportList($allowed_reports) {
$reportlist[] = "";
$reportlist[] = "<!-- Start of report list -->";
@@ -58,12 +58,7 @@ function tmpl_reportList() {
$reportlist[] = " <tbody>";
- $query_report = "SELECT * FROM report ORDER BY mindate";
- $result_report = mysql_query($query_report) or die(mysql_error());
- while($row = mysql_fetch_array($result_report)) {
- $message_query = "SELECT *, SUM(rcount) FROM rptrecord WHERE serial = {$row['serial']}";
- $message_process = mysql_query($message_query) or die(mysql_error());
- $message_result = mysql_fetch_array($message_process);
+ foreach ($allowed_reports[BySerial] as $row) {
$date_output_format = "r";
$reportlist[] = " <tr>";
$reportlist[] = " <td class='right'>". format_date($row['mindate'], $date_output_format). "</td>";
@@ -71,7 +66,7 @@ function tmpl_reportList() {
$reportlist[] = " <td class='center'>". $row['domain']. "</td>";
$reportlist[] = " <td class='center'>". $row['org']. "</td>";
$reportlist[] = " <td class='center'><a href='?report=". $row['serial']. "#rpt". $row['serial']. "'>". $row['reportid']. "</a></td>";
- $reportlist[] = " <td class='center'>". $message_result['SUM(rcount)']. "</td>";
+ $reportlist[] = " <td class='center'>". $row['rcount']. "</td>";
$reportlist[] = " </tr>";
}
$reportlist[] = " </tbody>";
@@ -85,7 +80,7 @@ function tmpl_reportList() {
return implode("\n ",$reportlist);
}
-function tmpl_reportData($reportnumber) {
+function tmpl_reportData($reportnumber, $allowed_reports) {
if (!$reportnumber) {
return "";
@@ -94,9 +89,8 @@ function tmpl_reportData($reportnumber) {
$reportdata[] = "";
$reportdata[] = "<!-- Start of report rata -->";
- $sql = "SELECT * FROM report where serial = $reportnumber";
- $query = mysql_query($sql) or die(mysql_error());
- if ($row = mysql_fetch_array($query)) {
+ if (isset($allowed_reports[BySerial][$reportnumber])) {
+ $row = $allowed_reports[BySerial][$reportnumber];
$reportdata[] = "<div class='center reportdesc'><p> Report from ".$row['org']." for ".$row['domain']."<br>(". format_date($row['mindate'], "r" ). " - ".format_date($row['maxdate'], "r" ).")</p></div>";
} else {
return "Unknown report number!";
@@ -119,13 +113,15 @@ function tmpl_reportData($reportnumber) {
$reportdata[] = " </thead>";
$reportdata[] = " <tbody>";
+
+ global $mysqli;
$sql = "SELECT * FROM rptrecord where serial = $reportnumber";
- $query = mysql_query($sql) or die(mysql_error());
- while($row = mysql_fetch_array($query)) {
+ $query = $mysqli->query($sql) or die("Query failed: ".$mysqli->error." (Error #" .$mysqli->errno.")");
+ while($row = $query->fetch_assoc()) {
$status="";
- if (($row['dkimresult'] == "fail") && ($row['spfresult'] == "fail")){
+ if (($row['dkimresult'] == "fail") && ($row['spfresult'] == "fail")) {
$status="red";
- } elseif (($row['dkimresult'] == "fail") || ($row['spfresult'] == "fail")){
+ } elseif (($row['dkimresult'] == "fail") || ($row['spfresult'] == "fail")) {
$status="orange";
} elseif (($row['dkimresult'] == "pass") && ($row['spfresult'] == "pass")) {
$status="lime";
@@ -194,14 +190,39 @@ function tmpl_page ($body) {
// does not need to exists.
if (file_exists("dmarcts-report-viewer-config.php")) include "dmarcts-report-viewer-config.php";
-// Make a MySQL Connection
-mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
-mysql_select_db($dbname) or die(mysql_error());
+// Make a MySQL Connection using mysqli
+$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
+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;
+}
+
+define("BySerial", 1);
+define("ByDomain", 2);
+define("ByOrganisation", 3);
+
+// Get allowed reports and cache them - using serial as key
+$allowed_reports = array();
+# Include the rcount via left join, so we do not have to make an sql query for every single report.
+$sql = "SELECT report.* , sum(rptrecord.rcount) as rcount FROM `report` LEFT Join rptrecord on report.serial = rptrecord.serial group by serial order by mindate";
+$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'];
+ }
+}
-// Generate Page with report list and report data (if a report is selected)
+// Generate Page with report list and report data (if a report is selected).
echo tmpl_page( ""
- .tmpl_reportList()
- .tmpl_reportData( (isset($_GET["report"]) ? $_GET["report"] : false ) )
+ .tmpl_reportList($allowed_reports)
+ .tmpl_reportData( (isset($_GET["report"]) ? $_GET["report"] : false ), $allowed_reports )
);
?>