/** * This function is beign used to change the users receiveMail setting. * It will first check if the user who executed this function is the person of whom the setting is or if it's a mod/admin. If this is not the case the page will be redirected to an error page. * it will check if the new value equals 1 or 0 and it will update the setting and redirect the page again. * @author Daan Janssens, mentored by Matthew Lagoe */ function change_receivemail() { try { //if logged in global $INGAME_WEBPATH; global $WEBPATH; if (WebUsers::isLoggedIn()) { if (isset($_POST['target_id'])) { //check if the user who executed this function is the person of whom the setting is or if it's a mod/admin. if (($_POST['target_id'] == $_SESSION['id'] || Ticket_User::isMod(unserialize($_SESSION['ticket_user']))) && isset($_POST['ReceiveMail'])) { $user_id = filter_var($_POST['target_id'], FILTER_SANITIZE_NUMBER_INT); $receiveMail = filter_var($_POST['ReceiveMail'], FILTER_SANITIZE_NUMBER_INT); if ($receiveMail == 0 || $receiveMail == 1) { WebUsers::setReceiveMail($user_id, $receiveMail); } if (Helpers::check_if_game_client()) { header("Cache-Control: max-age=1"); header("Location: " . $INGAME_WEBPATH . "?page=settings&id=" . $user_id); } else { header("Cache-Control: max-age=1"); header("Location: " . $WEBPATH . "?page=settings&id=" . $user_id); } throw new SystemExit(); } else { //ERROR: permission denied! $_SESSION['error_code'] = "403"; header("Cache-Control: max-age=1"); header("Location: index.php?page=error"); throw new SystemExit(); } } else { //ERROR: The form was not filled in correclty header("Cache-Control: max-age=1"); header("Location: index.php?page=settings"); throw new SystemExit(); } } else { //ERROR: user is not logged in header("Cache-Control: max-age=1"); header("Location: index.php"); throw new SystemExit(); } } catch (PDOException $e) { //go to error page or something, because can't access website db print_r($e); throw new SystemExit(); } }