$page[] = $error; } if (isset($report) and $report instanceof CrashReport) { if (!$report->isValid()) { $error = new Template("error", $isAPI); $error->addTransform("message", "This crash report is not valid"); $error->addTransform("url", "/submit"); $page[] = $error; } else { $db = new Database(); require_once "src/ReportHandler.php"; $handler = new ReportHandler($report, $isAPI); $tpl = $handler->showDetails($page); $encoded = $report->getEncoded(); //$hash = $report->getDate() . $encoded . microtime(true); $reportId = $db->insertReport($report); if ($reportId <= 0) { $error = new Template("error", $isAPI); $error->addTransform("message", "Internal error"); $error->addTransform("url", "/submit"); $page[] = $error; } else { $data = ["report" => $encoded, "reportId" => $reportId, "email" => $_POST["email"], "name" => clean($_POST["name"]), "attachedIssue" => false]; @file_put_contents("reports/" . sha1($reportId . SECRET_SALT) . ".log", json_encode($data)); header("Location: /view/{$reportId}" . ($isAPI ? "/api" : "")); $tpl->addTransform("crash_id", $reportId); $tpl->addTransform("email_hash", md5($_POST["email"])); $tpl->addTransform("name", $name = clean($_POST["name"])); $tpl->addTransform("attached_issue", "None"); if (WEBHOOK_URL !== null) { @file_get_contents(WEBHOOK_URL . urlencode("[Crash] New report #{$reportId} from {$name}: " . $report->getReportName() . ". Details: http://" . ROOT_DOMAIN . "/view/{$reportId}"));