function errSend() { /* check for valid email settings */ $settings = new dbSelect("esettings", "cubit"); $settings->run(); if ($settings->num_rows() <= 0) { r2sListSet("emailsettings"); header("Location: email-settings.php"); exit; } $settings->fetch_array(); $server = $settings->d["smtp_host"]; $from = $settings->d["fromname"]; $reply = $settings->d["reply"]; /* build the email */ $data = errData($_GET["id"]); $msg = new clsMailMsg(); $msg->newMessage($from, $reply, "Error Report: {$data['errtime']}", "Error report file attached."); $msg->addAttachment("application/octet-stream", "error{$_GET['id']}-{$data['errtime']}.cer", $data["errdata"]); $md = $msg->getNewMessage(); /* send the email */ /** * ok, so lets stop catching errors because if the email sending fails * we are just going to go back to "an error has occured" */ disableErrorNet(); $smtp = new clsSMTPMail(); $smtp->sendMessages($server, 25, false, false, false, ERRORNET_EMAIL, $md["from"], $md["subject"], $md["body"], $md["headers"]); $OUTPUT = "<h3>Error Report</h3>"; if ($smtp->bool_success !== true) { $OUTPUT .= "Error sending report. Please save report and email it\n\t\t\tto <a class='nav' href='mailto: " . ERRORNET_EMAIL . "'>" . ERRORNET_EMAIL . "</a><br />\n\t\t\t<br />\n\t\t\t<input type='button' value='Save Error Report'\n\t\t\t\tonClick='document.location.href=\"" . relpath("geterror.php") . "?id={$_GET['id']}\";' />"; } else { $OUTPUT .= "Successfully sent report. Thank You."; } return $OUTPUT; }
/** * executes sql query in currently selected schema in safe way; * * this doesn't raise an error or kill a transaction when it fails * * @param string $query sql query * @return int postgresql result */ function db_exec_safe($sql) { disableErrorNet(); pglib_transaction("SAVEPOINT dbexec_failsafe", true); $rslt = db_exec($sql, true); if (!$rslt) { pglib_transaction("ROLLBACK TO dbexec_failsafe", true); } pglib_transaction("RELEASE SAVEPOINT dbexec_failsafe", true); enableErrorNet(); return $rslt; }