Erreur session_start() - improbable !

Résolu/Fermé
Alexkidd - 16 avril 2009 à 12:39
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 avril 2009 à 14:57
Bonjour,

Je réalise une application intranet dans le cadre d'un stage.
J'ai tout fais en local sur mon PC et tout fonctionne.

Je test actuellement sur l'intranet et j'ai un problème avec le session_start().
A force d'enlever du code pour voir ce qui fait buguer le programme j'en suis venu à ça :

Mon fichier index contient 1 seule ligne qui est :

<?php session_start(); ?>

Autant dire qu'il n'y a rien d'afficher avant là. Et pourtant j'ai l'erreur suivante :

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\blablabla\www\intranet3\index.php:1) in C:\blablabla\www\intranet3\index.php on line 1

J'ai forcément besoin de session pour mon application, et j'aurai besoin de votre aide pour trouver une solution s'il vous plait. Parce que là je comprend plus rien.

Pour info :
Apache 2.0.59
PHP 5.2.3
Je test actuellement sur IE6 (Navigateur majoritaire dans cet établissement)

8 réponses

Avec quoi écris-tu ta ligne de php ? Avec notepad++, en UTF8 ? Alors il faut l'enregistrer en UTF8 SANS BOM (le BOM est un caractère invisible ajouté en début de fichier)
(ou enregistrer en ANSI)
2
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 13:37
ou voir meme le faire avec notepad de windows... juste pour être sur ;)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 12:47
salut
il faut mettre cette ligne en toute premièreligne du code, sans meme une ligne blanche avant

sinon, je croi qu'il y a une option dans apache pour différer l'emission des headers, mais en mettant la ligne tout en haut du fichier php ca devrai passer

headers already sent -> signifie que du code a déja été envoyé au client
0
Le souci, c'est que c'est la seule et unique ligne du fichier là. Il n'y a rien avant et rien après. juste :
<?php session_start(); ?>

Donc je comprends rien.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 13:03
pas meme un petit espace avant l'ouverture des balises php ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rien de rien.
Le tout premier caractère est : <
Le fichier est complètement vidé à part cette instruction php.
C'est assez pénible comme problème.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 13:11
essayes en activant la mise en cache ...
http://httpd.apache.org/docs/2.2/fr/caching.html
0
Je l'avais tapé avec dreamweaver, puis modifié avec notepad++ et ouvert avec le bloc note de windows pour vérifier si il y avait un caractère que je ne voyait pas mais non.
Puis finalement sur tes conseils le père, j'ai converti le fichier en UTF8 sans BOM avec np++ et ça marche impecable. Je ne connaissait pas ça le BOM (mais pourquoi il existe d'ailleur ?!.. enfin bref...)

Merci à vous deux pour m'avoir aidé à trouver une solution.

Ciao et bonne aprem à vous.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 14:02
merci au père, je ne connaissait pas ;) je voyais bien que qqch avait été envoyé, mais je savais pas quoi ;) je ne connaissait pas le BOM

les conseils que je t'ai doné sur le cache peuvent etre utile pour ouvrir une session, ou envoyer un cookie (qui sont dans les entetes HTTP) alors que les entetes sont déja sencé être parties...
en revanche, il faudra attendre que la page soit complètement créer pour qu'elle part chez le client
0
Pour le rôle du BOM (Byte Order Mark), voir l'article de wikipedia sur l'Unicode :
https://fr.wikipedia.org/wiki/Unicode#GB18030
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
16 avril 2009 à 14:57
oui, j'étais allé y faire un tour. il a meme son article dédié (en anglais)
https://en.wikipedia.org/wiki/Byte_Order_Mark
0