prepare("SELECT users.*, roles.name as role_name FROM users JOIN roles ON users.role_id = roles.id WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user && password_verify($password, $user['password'])) { // Password is correct, start session session_regenerate_id(); $_SESSION['user_id'] = $user['id']; $_SESSION['user_email'] = $user['email']; $_SESSION['user_role'] = $user['role_name']; $_SESSION['user_name'] = $user['first_name'] . ' ' . $user['last_name']; // Redirect to dashboard header("Location: dashboard.php"); exit; } else { $errors[] = "Invalid email or password."; } } catch (PDOException $e) { $errors[] = "Database error: " . $e->getMessage(); } } } include 'templates/header.php'; ?>