prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { session_regenerate_id(true); $_SESSION['user_id'] = $user['id']; $_SESSION['user_name'] = $user['name']; $_SESSION['user_role'] = $user['role']; header('Location: index.php'); exit; } else { $_SESSION['login_error'] = 'Invalid email or password.'; header('Location: login.php'); exit; } } catch (PDOException $e) { // In a real app, log this error. $_SESSION['login_error'] = 'An error occurred. Please try again later.'; header('Location: login.php'); exit; } }