From 11ca3a78b6631f461e0f8dc113aeb2a16cbeaafa Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sun, 4 Jan 2026 09:25:53 +0000 Subject: [PATCH] Edit api/login.php via Editor --- api/login.php | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 api/login.php diff --git a/api/login.php b/api/login.php new file mode 100644 index 0000000..f77cd7f --- /dev/null +++ b/api/login.php @@ -0,0 +1,56 @@ + false, 'message' => 'Email and password are required.']); + exit(); +} + +$email = trim($input['email']); +$password = $input['password']; + +try { + // Query user from database + $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ? LIMIT 1"); + $stmt->execute([$email]); + $user = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($user && password_verify($password, $user['password'])) { + // Regenerate session ID for security + session_regenerate_id(true); + + // Set session variables + $_SESSION['user_id'] = $user['id']; + $_SESSION['role'] = $user['role']; + $_SESSION['user_name'] = $user['name']; + $_SESSION['email'] = $user['email']; + $_SESSION['logged_in'] = true; + + // Force session to be written + session_write_close(); + + echo json_encode([ + 'success' => true, + 'message' => 'Login successful', + 'redirect' => 'index.php' + ]); + } else { + http_response_code(401); + echo json_encode(['success' => false, 'message' => 'Invalid email or password.']); + } +} catch (Exception $e) { + error_log("Login error: " . $e->getMessage()); + http_response_code(500); + echo json_encode(['success' => false, 'message' => 'Server error occurred.']); +} \ No newline at end of file