diff --git a/src/app/components/common/profile.php b/src/app/components/common/profile.php
index f6416c0e9ae9a32ba58097f21bd5a4b89a6c2ba9..fca927afc956675b8fe79054550a933c0f903d85 100644
--- a/src/app/components/common/profile.php
+++ b/src/app/components/common/profile.php
@@ -18,14 +18,12 @@
                     <img class="profpic-edit" src="<?= STORAGE_URL . $this->data["url_profpic"] ?>" alt="image">
                     <div class="edit-info">
                         <div class="sh5">Nama</div>
-                        <input type="text">
+                        <input type="text" value="<?=$this->data["name"] ?>" id="name-form">
                         <div class="sh5">Username</div>
-                        <input type="text">
-                        <div class="sh5">Password</div>
-                        <input type="text">
+                        <input type="text"value="<?=$this->data["username"]?>" id="username-form">
                     </div>
                 </div>
-                <button class="sh4">Submit</button>
+                <button class="sh4" id="submit-profile">Submit</button>
             </div>
         </div>
     <?php endif; ?>
diff --git a/src/app/controllers/login/post_login.php b/src/app/controllers/login/post_login.php
index 3420ec65da11819faf8d126c5d47d6e63b4b720a..96f4fa80a789bb461b32dfda85178075a5b771d2 100644
--- a/src/app/controllers/login/post_login.php
+++ b/src/app/controllers/login/post_login.php
@@ -23,7 +23,7 @@ class PostLoginController
                 } else {
                     if (password_verify($password, $user['password'])) {
                         $_SESSION["start"] = time();
-                        $_SESSION["expire"] = time() + 60 * 10;
+                        $_SESSION["expire"] = time() + 60 * 600;
                         $_SESSION["user_id"] = $user['id_user'];
 
                         if ($username == "premium") {
diff --git a/src/app/controllers/profile/get_profile.php b/src/app/controllers/profile/get_profile.php
index a44450a44a35c6b0243cbc51953d7906f4a413e4..0ae440f317af7450a3abeaafd0bed1f892528c4c 100644
--- a/src/app/controllers/profile/get_profile.php
+++ b/src/app/controllers/profile/get_profile.php
@@ -26,7 +26,6 @@ class getProfileController
       "name" => $profile->name,
       "username" => $profile->username,
       "url_profpic" => $profile->url_profpic,
-      "password" => $profile->password,
     ];
     header("Access-Control-Allow-Origin: *");
     header("Access-Control-Allow-Credentials: true");
diff --git a/src/app/controllers/profile/update_profile.php b/src/app/controllers/profile/update_profile.php
index a414503d79ebe8e7f3fe2429f05b23fe6d2d54ad..03822569f8c4e96070b980dad0d53238cf62ac08 100644
--- a/src/app/controllers/profile/update_profile.php
+++ b/src/app/controllers/profile/update_profile.php
@@ -4,31 +4,43 @@ class UpdateProfileController
 {
     public function call()
     {
-        
         if (isset($_SERVER["HTTP_API_KEY"])) {
-            if ($_SERVER["HTTP_API_KEY"] != $_ENV["API_KEY"]) {
-              http_response_code(403);
-              return;
+            if ($_SERVER["HTTP_API_KEY"] != $_ENV["REST_PHP_KEY"]) {
+                http_response_code(403);
+                echo json_encode(["message" => "Invalid API key"]);
+                return;
             }
         }
 
+        header("Access-Control-Allow-Origin: *");
+        header("Access-Control-Allow-Credentials: true");
+        header("Max-Age: 86400");
+        header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
         if (isset($_SERVER["QUERY_STRING"])) {
+            if (!isset($_POST['name']) || !isset($_POST['username'])) {
+                http_response_code(403);
+                echo json_encode(["message" => "invalid username or name"]);
+                exit;
+            }
             $name = $_POST['name'];
             $username = $_POST['username'];
-            $password = $_POST['password'];
 
             try {
-                if (!isset($_SERVER["user_id"])) {
-                    http_response_code(401);
-                    echo json_encode(["message" => "Disni"]);
+                if (!isset($_GET["user_id"])) {
+                    http_response_code(400);
+                    echo json_encode(["message" => "Invalid user id"]);
                     exit;
                 } else {
-                    $model = new UserModel();
-                    $status = $model->updateProfile($_SESSION["user_id"], $name, $username, $password); 
+                    $userModel = new UserModel();
+                    $status = $userModel->updateProfile($_GET["user_id"], $name, $username); 
 
                     if ($status == 200) {
-                        http_response_code(200);
-                        echo json_encode(["message" => "Profile updated successfully"]);
+                        if ($name== "woy") {
+                            http_response_code(500);
+                        } else {
+                        }
+                        http_response_code(500);
+                        echo json_encode(["message" => "Profile updated successfully!", "name" => $name, "username" => $username]);
                         exit;
                     } else {
                         http_response_code(500);
diff --git a/src/app/models/user.php b/src/app/models/user.php
index 015dd9d6c1495f9368f9a9f34d8fd775be74aac2..3bf84867d0cefb393260a4ef6d9160394c5e54d3 100644
--- a/src/app/models/user.php
+++ b/src/app/models/user.php
@@ -68,15 +68,14 @@ class UserModel
     return $rowAffected;
   }
 
-  public function updateProfile($id_user, $name, $username, $password) {
-    $query = "UPDATE user( name, username, password)
-              SET user=:name, username=:username, password=:password
+  public function updateProfile($id_user, $name, $username) {
+    $query = "UPDATE user
+              SET name=:name, username=:username
               WHERE id_user=:id_user";
 
     $this->db->query($query);
     $this->db->bind('name', $name);
     $this->db->bind('username', $username);
-    $this->db->bind('password', $password);
     $this->db->bind('id_user', $id_user);
 
     $status = 200;
diff --git a/src/public/javascript/profile/profile.js b/src/public/javascript/profile/profile.js
index 9ff5d5761ba20e1a791353291686f235e6958915..e6239b77072f13a79bcc8aff90db56902b57d0f1 100644
--- a/src/public/javascript/profile/profile.js
+++ b/src/public/javascript/profile/profile.js
@@ -1,3 +1,5 @@
+import { showErrorToast, showSuccessToast } from "../toast.mjs";
+
 const profile = document.querySelector(".profile");
 const profileMenu = document.querySelector(".profile-menu");
 console.log("masuk");
@@ -27,3 +29,41 @@ window.addEventListener("click", function (e) {
     editProfile.style.display = "none";
   }
 });
+
+
+// Handle submit
+const nameForm = document.getElementById("name-form");
+const usernameForm = document.getElementById("name-form");
+const submitProfileButton = document.getElementById("submit-profile");
+
+submitProfileButton.addEventListener("click", (e) => {
+  e.preventDefault();
+  const name = nameForm.value;
+  const username = usernameForm.value;
+
+  const formData = new FormData();
+  formData.append("name", name);
+  formData.append("username", username);
+
+  const xhr = new XMLHttpRequest();
+  xhr.open("POST", "/public/profile", true);
+
+  xhr.onload = function () {
+    if (xhr.readyState === XMLHttpRequest.DONE) {
+      if (xhr.status === 200) {
+        nameForm.value = JSON.parse(xhr.responseText).name;
+        usernameForm.value = JSON.parse(xhr.responseText).username;
+        showSuccessToast(JSON.parse(xhr.responseText).message);      
+      } else {
+        showErrorToast(JSON.parse(xhr.responseText).message);
+      }
+    }
+  };
+
+  xhr.send(formData);
+});
+
+
+
+
+