"ok", ); $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname, $dbport); function error_die($text, $number) { http_response_code("500"); $message = array( "status" => "error", "message" => $text, "code" => $number ); die(json_encode($message)); } if ($mysqli->connect_errno) { error_die($mysqli->connect_error, $mysqli->connect_errno); } if (!isset($_GET['serial'])) { $response["domains"] = array(); $query = $mysqli->query("SELECT DISTINCT domain FROM `report` ORDER BY domain"); if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } while($row = $query->fetch_assoc()) { $response["domains"][] = $row['domain']; } $response["orgs"] = array(); $query = $mysqli->query("SELECT DISTINCT org FROM `report` ORDER BY org"); if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } while($row = $query->fetch_assoc()) { $response["orgs"][] = $row['org']; } $response["dates"] = array(); $query = $mysqli->query("SELECT DISTINCT DISTINCT year(mindate) as year, month(mindate) as month FROM `report` ORDER BY year DESC,month DESC"); if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } while($row = $query->fetch_assoc()) { $response["dates"][] = sprintf( "%'.04d-%'.02d", $row['year'], $row['month'] ); } $response["summaries"] = array(); if (isset($_GET['errors_only'])) { $where = " WHERE (spfresult != 'pass' or dkimresult != 'pass')"; } else { $where = ""; } $sql = "SELECT report.* , sum(rptrecord.rcount) AS rcount, MIN(rptrecord.dkimresult) AS dkimresult, MIN(rptrecord.spfresult) AS spfresult FROM report LEFT JOIN (SELECT rcount, COALESCE(dkimresult, 'neutral') AS dkimresult, COALESCE(spfresult, 'neutral') AS spfresult, serial FROM rptrecord) AS rptrecord ON report.serial = rptrecord.serial$where GROUP BY serial ORDER BY mindate ASC, maxdate ASC, org"; $query = $mysqli->query($sql); if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } while($row = $query->fetch_assoc()) { unset($row["raw_xml"]); $response["summaries"][] = $row; } } else { $response["rptrecord"] = []; $sql = $mysqli->prepare("SELECT * FROM rptrecord where serial = ?"); $sql->bind_param("s", $_GET["serial"]); $sql->execute(); $query = $sql->get_result(); if ($mysqli->error) { error_die($mysqli->error, $mysqli->errno); } while($row = $query->fetch_assoc()) { if ($row['ip']) { $ip = long2ip($row['ip']); $host = gethostbyaddr($ip); } elseif ( $row['ip6'] ) { $ip = inet_ntop($row['ip6']); $host = gethostbyaddr($ip); } else { $ip = "-"; $host = "-"; } $row['ip'] = $ip; $row['host'] = $host; unset($row['ip6']); $response["rptrecord"][] = $row; } } echo json_encode($response, JSON_PRETTY_PRINT); ?>