prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { // Regenerate session ID to prevent session fixation session_regenerate_id(true); $_SESSION['user_id'] = $user['id']; $_SESSION['user_name'] = $user['nama_lengkap']; $_SESSION['user_role'] = $user['role']; $_SESSION['user_office_id'] = $user['id_kantor']; header('Location: index.php'); exit(); } else { $_SESSION['login_error'] = 'Email atau password salah.'; header('Location: login.php'); exit(); } } catch (PDOException $e) { // In a real app, you would log this error $_SESSION['login_error'] = 'Terjadi kesalahan pada database.'; header('Location: login.php'); exit(); } } else { header('Location: login.php'); exit(); }