Problème PHP 'headers already sent'

Résolu
ACervoise Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -  
ACervoise Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je travaille actuellement sur un site utilisant des sessions. Le site est en php, encodé en UTF8. J'utilise Eclipse PHP.

Lorsque je lance mon projet j'ai le message suivant qui apparait :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/site4/public_html/index.php:1) in /home/site4/public_html/lib_user.php on line 13

Je précise que le problème n'est pas du à une mauvaise position de mon session_start().

J'avais eu le même problème en local (Serveur LAMP Ubuntu 9.10), je l'avais réglé en passant le output buffering a On dans de php.ini. Cependant sur le serveur je n'ai plus accès au php.ini et la modification du output buffering via un .htaccess est impossible sur le serveur.

En trainant sur le net j'ai vu que cela pouvait provenir d'un problème d'encodage (j'utilise actuellement l'UTF8) et je devrais apparemment utiliser le UTF8 sans BOM. Malgré toute mes recherches je n'arrive pas à l'activer dans Eclipse.

Donc j'aimerai savoir si quelqu'un a une solution que ce soit du coté d'Eclipse ou bien du coté serveur.
A voir également:

4 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Sur Eclipse je ne sais pas comment faire mais si tu es sous Windows tu peux télécharger Notepad++.

Sinon vérifies qu'il n'y ait pas de caractères externes au <?php ... ?> ou de echo avant l'appel à la fonction header()
0
ACervoise Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   85
 
Nop en local je suis sous Linux,qui plus est j'utilise Eclipse pour pas mal de raisons pratique que notepad++ n'a pas (Subversive par exemple).

Et non il n'y a rien avant le session_start().
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Avec Gnome tu as Gedit (l'éditeur de texte par défaut).
Il suffit de faire "enregistrer sous" puis tu pourras choisir l'encodage et écrasé l'ancienne version du fichier.
0
ACervoise Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   85
 
Il y a deux solutions, la première est d'encoder en UTF8 sans BOM, la seconde est de passer le paramètre "output_buffering" à on dans php.ini.
0