Récemment en créant une page PHP comme d’habitude, je me suis heurté a une erreur imprévue :
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /home/httpd/vhosts/nomdedomaine.com/httpdocs/test/autres.php:1) in /home/httpd/vhosts/nomdedomaine.com/httpdocs/test/autres.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at/home/httpd/vhosts/nomdedomaine.com/httpdocs/test/autres.php:1) in /home/httpd/vhosts/nomdedomaine.com/httpdocs/test/autres.php on line 2
C’est une erreur qu’on rencontre habituellement avec les variables de session lorsque des caractères sont envoyé au navigateur avant que la session soit démarrée.
Pourtant j’utilise bien la commande session_start() au début de mon fichier, avant que quoi que ce soit, soit envoyé au navigateur…
J’ai donc un peu cherché et voila la réponse au problème :
J’ai enregistré mon script avec un encodage en UTF8, et par défaut mon éditeur de texte l’enregistre avec BOM alors qu’il faut l’enregistrer SANS BOM.
Le BOM (Byte Order Mark) est un caractère spécial, (en fait , 3 octets en utf8) invisible qui est mis en tout début de fichier.
Il faut donc enlever cette option et Ré-enregistrer le script.