From 8d60c8132d4d447b14bc72ae9d6258301b1f8a11 Mon Sep 17 00:00:00 2001 From: Naufal-Nalendra <16521240@std.stei.itb.ac.id> Date: Mon, 9 Oct 2023 14:52:46 +0700 Subject: [PATCH] fix: error handling for addbook and editbook --- app/controllers/admin.php | 35 ++++++++++++++++-------- app/views/popup/popupAdd.php | 19 ------------- app/views/popup/popupDelete.php | 19 ------------- app/views/popup/popupEdit.php | 19 ------------- app/views/popup/popupEditDelete.php | 21 --------------- app/views/popup/popupTemplateMulti.php | 37 -------------------------- app/views/popup/popupUpdate.php | 19 ------------- 7 files changed, 24 insertions(+), 145 deletions(-) delete mode 100644 app/views/popup/popupAdd.php delete mode 100644 app/views/popup/popupDelete.php delete mode 100644 app/views/popup/popupEdit.php delete mode 100644 app/views/popup/popupEditDelete.php delete mode 100644 app/views/popup/popupTemplateMulti.php delete mode 100644 app/views/popup/popupUpdate.php diff --git a/app/controllers/admin.php b/app/controllers/admin.php index d5d189c..023d314 100644 --- a/app/controllers/admin.php +++ b/app/controllers/admin.php @@ -66,8 +66,10 @@ class Admin extends Controller { return new $model; } - public function addBook(){ - if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){ + public function addBook() +{ + try { + if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Buat path image audio @@ -89,20 +91,25 @@ class Admin extends Controller { $array = array_column($data['book'], "title"); // Cek exist ato g usernya, cek string kosong ato ngga - if (!in_array($newTitle, $array, true) && !(empty($newTitle) || empty($newContent) || ( empty ($newTitle) && empty($newContent) ))){ + if (!in_array($newTitle, $array, true) && !(empty($newTitle) || empty($newContent) || (empty($newTitle) && empty($newContent)))) { $this->model('BookModel')->insertBook($newTitle, $newContent, $selectedAuthor, $selectedCategory); move_uploaded_file($fileTmpAudio, $audioFilePath); move_uploaded_file($fileTmpImage, $imageFilePath); + } else { + throw new Exception("Invalid input data."); } - } $data['book'] = $this->model('BookModel')->getAllBookAdmin(); $data['author'] = $this->model('AuthorModel')->getAuthor(); $this->view('admin/bookadmin', $data); } else { - $this->view('error/404'); + throw new Exception("Unauthorized access."); } + } catch (Exception $e) { + $error_message = $e->getMessage(); + $this->view('error/403', ['error' => $error_message]); } +} public function addUser(){ if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin' ){ if ($_SERVER['REQUEST_METHOD'] === 'POST') { @@ -137,11 +144,12 @@ class Admin extends Controller { } } - public function editBook(){ + public function editBook() +{ + try { if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // Buat path image audio $imageDir = LOCALURL . "/img/"; $audioDir = LOCALURL . "/audio/"; @@ -163,21 +171,26 @@ class Admin extends Controller { $data['book'] = $this->model('BookModel')->getAllBook(); $array = array_column($data['book'], "title"); // Cek title kosong atau udah exist di db atau gk diganti - if(!empty($newTitle) && (!in_array($newTitle, $array, true) || $newTitle === $oldTitle) && (isset($fileAudio) && isset($fileImage))){ + if (!empty($newTitle) && (!in_array($newTitle, $array, true) || $newTitle === $oldTitle) && (isset($fileAudio) && isset($fileImage))) { $this->model('BookModel')->updateBook($bookid, $newTitle, $selectedAuthor, $newContent, $selectedCategory); move_uploaded_file($fileTmpAudio, $audioFilePath); move_uploaded_file($fileTmpImage, $imageFilePath); + } else { + throw new Exception("Invalid input data."); } $data['book'] = $this->model('BookModel')->getAllBookAdmin(); $data['author'] = $this->model('AuthorModel')->getAuthor(); $this->view('admin/bookadmin', $data); - } - } else{ - $this->view('error/404'); + } else { + throw new Exception("Unauthorized access."); } + } catch (Exception $e) { + $error_message = $e->getMessage(); + $this->view('error/403', ['error' => $error_message]); } +} public function editUser(){ if (isset($_SESSION['user_role']) && $_SESSION['user_role'] === 'admin') { diff --git a/app/views/popup/popupAdd.php b/app/views/popup/popupAdd.php deleted file mode 100644 index abcdcdf..0000000 --- a/app/views/popup/popupAdd.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$popupContentTitle = "Add Book"; -$popupContentText = "Are you sure you want to add this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupDelete.php b/app/views/popup/popupDelete.php deleted file mode 100644 index 9002efa..0000000 --- a/app/views/popup/popupDelete.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$deletePopupContentTitle = "Delete Bookmark"; -$deletePopupContentText = "Are you sure you want to delete this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupEdit.php b/app/views/popup/popupEdit.php deleted file mode 100644 index 5d54f82..0000000 --- a/app/views/popup/popupEdit.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$editPopupContentTitle = "Edit Bookmark"; -$editPopupContentText = "Are you sure you want to edit this bookmark?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> diff --git a/app/views/popup/popupEditDelete.php b/app/views/popup/popupEditDelete.php deleted file mode 100644 index 36008f7..0000000 --- a/app/views/popup/popupEditDelete.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$editPopupContentTitle = "Edit Bookmark"; -$editPopupContentText = "Are you sure you want to edit this bookmark?"; -$deletePopupContentTitle = "Delete Bookmark"; -$deletePopupContentText = "Are you sure you want to delete this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = '/var/www/html/public/style/popupEditDelete.css'; -$jsFileName = '/var/www/html/public/js/popupEditDelete.js'; - -// Include the template -include('popupTemplateMulti.php'); -?> diff --git a/app/views/popup/popupTemplateMulti.php b/app/views/popup/popupTemplateMulti.php deleted file mode 100644 index dc1d11d..0000000 --- a/app/views/popup/popupTemplateMulti.php +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="stylesheet" type="text/css" href="<?php echo $cssFileName; ?>"> - <title><?php echo $pageTitle; ?></title> -</head> -<body> - <!-- Edit Popup --> - <div id="editPopup" class="popup"> - <div class="popup-content"> - <h1><?php echo $editPopupContentTitle; ?></h1> - <p><?php echo $editPopupContentText; ?></p><br> - <div class="button-container"> - <button id="continueButtonEdit"><?php echo $continueButtonText; ?></button> - <button id="cancelButtonEdit"><?php echo $cancelButtonText; ?></button> - </div> - </div> - </div> - - <!-- Delete Popup --> - <div id="deletePopup" class="popup"> - <div class="popup-content"> - <h1><?php echo $deletePopupContentTitle; ?></h1> - <p><?php echo $deletePopupContentText; ?></p><br> - <div class="button-container"> - <button id="continueButtonDelete"><?php echo $continueButtonText; ?></button> - <button id="cancelButtonDelete"><?php echo $cancelButtonText; ?></button> - </div> - </div> - </div> - - -</body> -</html> diff --git a/app/views/popup/popupUpdate.php b/app/views/popup/popupUpdate.php deleted file mode 100644 index 135d0ca..0000000 --- a/app/views/popup/popupUpdate.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -// Define dynamic content -$pageTitle = "Popup Page"; -$popupTitle = "POPUP"; -$buttonText = "Click me"; -$popupContentTitle = "Update Book"; -$popupContentText = "Are you sure you want to update this book?"; -$continueButtonText = "Continue"; -$cancelButtonText = "Cancel"; - -$currentFileName = basename(__FILE__, '.php'); - -// Define CSS and JavaScript file names based on the current file -$cssFileName = $currentFileName . '.css'; -$jsFileName = $currentFileName . '.js'; - -// Include the template -include('popupTemplate.php'); -?> -- GitLab