Comment vérifier si une session PHP est déjà démarrée et éviter l'erreur « headers already sent »
Bonjour à tous ! Je suis débutant en PHP et je développe un petit site avec authentification. J'ai plusieurs scripts qui travaillent avec les sessions. Dans un fichier, je démarre la session avec session_start(), puis j'inclus d'autres fichiers via include. Le problème est que si j'appelle accidentellement session_start() deux fois dans différents fichiers, PHP génère une erreur :
Warning : session_start() : Cannot send session cookie - headers already sent
Je comprends que cette erreur se produit parce que les en-têtes ont déjà été envoyés, et un second appel à session_start() est impossible. Mais comment puis-je vérifier si une session est déjà démarrée pour éviter d'appeler session_start() à nouveau ? J'ai essayé d'utiliser @ au début pour supprimer l'erreur, mais c'est une mauvaise pratique, d'après ce que j'ai compris.
Voici un exemple de mon code :
// config.php
session_start();
$_SESSION['user'] = 'admin';
// page.php
include 'config.php';
session_start(); // Ici, cela génère une erreur si config.php a déjà appelé session_start()
J'ai besoin de quelque chose comme : if (session_not_started)