$airdata = $app->request()->post('airdata'); $seadata = $app->request()->post('seadata'); $cam = $app->request()->post('cam'); //global $user_id; $db = new DbHandler(); //$res = $db->toggleFavourite($email, $spotId); $res = $db->reportIssue($user_id, $spotId, $airdata, $seadata, $cam); $spot = $db->getSpot($spotId); $user = $db->getUserById($user_id); $response = array(); $response["airdata"] = $airdata; $response["seadata"] = $seadata; $response["cam"] = $cam; if ($res == ISSUE_LOGGED_SUCCESSFULLY) { //try send email here sendErrorReport($user, $spot, $airdata, $seadata, $cam); $response["error"] = false; $response["message"] = "Thanks for letting us know there's a problem.<br>We'll contact you should we require more details."; } else { if ($res == ISSUE_LOG_FAILED) { $response["error"] = true; $response["message"] = 'Oops! We are unable to log an issue for this spot.'; } else { if ($res == ISSUE_FOR_SPOT_ALREADY_EXISTS) { $response["error"] = true; $response["message"] = 'An issue has already been logged for this spot'; } } } // echo json response echoRespnse(201, $response);
$content .= "\nLes erreurs suivantes ont été détectées :\n"; $content .= " - " . implode("\n - ", $errors); $content .= "\n\n Vous ne recevrez plus de message d'erreurs jusqu'au retour à la normale"; email_send(getMailTo(), "Une erreur s'est produite sur OpenNAS", $content, $outError); return !$outError; } function sendSuccessReport() { $xml = simplexml_load_file('/conf/config.xml'); $name = $xml->xpath('/opennas/system/hostname'); email_send(getMailTo(), "Plus d'erreur détectées sur OpenNAS", "Aucune erreur n'a été détectée sur l'OpenNAS \"" . $name['0'] . "\" ( " . get_hast_role() . " ).", $outError); return !$outError; } if (!validEmailTo()) { echo "Please enter a valid email address (-d option)"; exit(1); } $errors = runTests(); if (count($errors)) { if (!hasPreviousError()) { if (sendErrorReport($errors)) { saveErrorState(true); } } } else { if (hasPreviousError()) { if (sendSuccessReport()) { saveErrorState(false); } } }
function parseEmail($content, $extra = false) { $now = date("j/m/Y à H:i:s"); $xml = simplexml_load_file('/conf/config.xml'); $res = $xml->xpath('/opennas/interfaces'); $adresses = ''; foreach ($res[0] as $key => $value) { $adresses .= "\n {$key} : " . $value->ipaddr . ""; } $hostname = $xml->xpath('/opennas/system/hostname'); $hostname = $hostname['0']; if ($extra) { extract($extra); } if (preg_match_all('#@@([a-zA-Z0-9]+)#', $content, $matches, PREG_SET_ORDER)) { } foreach ($matches as $m) { $content = preg_replace("#{$m['0']}#", ${$m}[1], $content); } return $content; } function sendErrorReport() { $options = getOptions(); $extra_vars = isset($options['params']) ? $options['params'] : false; $content = parseEmail($options['email'], $extra_vars); email_send($options['mailTo'], "Une erreur s'est produite sur OpenNAS", $content, $outError); exit($outError); } sendErrorReport();