web-dev-qa-db-fra.com

"Impossible d'envoyer un limiteur de cache de session - les en-têtes déjà envoyés"

Duplicate possible:
en-têtes PHP déjà envoyés
En-têtes déjà envoyés par PHP

Avoir un problème avec les sessions qui devient très énervant. Chaque fois que j'essaie de démarrer une session sur une page particulière, l'erreur suivante apparaît:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ............ on line 23

en utilisant ce code:

<?php
session_start();
if(isset($_SESSION['user']))
    {
        $user = $_SESSION['user'];
        echo "$user";
    }
else
    {
    }
?> 

Cela suggère-t-il que j'ai déjà utilisé session_start();? J’ai jeté un coup d’œil autour de moi, mais rien n’éclaire vraiment cela pour moi.

Merci

124
user1039878

"En-têtes déjà envoyés" signifie que votre script PHP a déjà envoyé les en-têtes HTTP et qu'il ne peut donc pas les modifier pour le moment.

Vérifiez que vous n’envoyez AUCUN contenu avant d’appeler session_start. Mieux encore, faites simplement session_start la première chose que vous fassiez dans votre fichier PHP (placez-le donc au début absolu, avant tout le code HTML, etc.).

244
houbysoft