Avatar ·

Como verificar se uma sessão PHP já foi iniciada e evitar o erro "headers already sent"

Olá a todos! Sou novo em PHP e estou criando um pequeno site com autenticação. Tenho vários scripts que trabalham com sessões. Em um arquivo, eu inicio a sessão com session_start() e depois incluo outros arquivos via include. O problema é que, se eu chamar session_start() duas vezes acidentalmente em arquivos diferentes, o PHP exibe um erro: Warning: session_start(): Cannot send session cookie - headers already sent Eu entendo que esse erro ocorre porque os headers já foram enviados, e uma segunda chamada a session_start() não é possível. Mas como posso verificar se a sessão já foi iniciada para não chamar session_start() novamente? Tentei usar @ no início para suprimir o erro, mas entendi que isso é uma má prática. Aqui está um exemplo do meu código: // config.php session_start(); $_SESSION['user'] = 'admin'; // page.php include 'config.php'; session_start(); // Aqui exibe o erro se config.php já chamou session_start() Preciso de algo como: if (session_not_started