Avatar ·

Cómo verificar si una sesión PHP ya está iniciada y evitar el error «headers already sent»

¡Hola a todos! Soy nuevo en PHP y estoy escribiendo un pequeño sitio con autenticación. Tengo varios scripts que trabajan con sesiones. En un archivo inicio la sesión con session_start(), y luego incluyo otros archivos mediante include. El problema es que si accidentalmente llamo a session_start() dos veces en diferentes archivos, PHP muestra un error: Warning: session_start(): Cannot send session cookie - headers already sent Entiendo que este error ocurre porque los headers ya fueron enviados, y no se puede llamar a session_start() nuevamente. Pero, ¿cómo puedo verificar si la sesión ya está iniciada para no llamar a session_start() de nuevo? Intenté usar @ al principio para suprimir el error, pero según entiendo, es una mala práctica. Aquí hay un ejemplo de mi código: // config.php session_start(); $_SESSION['user'] = 'admin'; // page.php include 'config.php'; session_start(); // Aquí muestra el error si config.php ya llamó a session_start() Necesito algo como: if (session_not_started