PHP : Erreur headers already sent on line 1

Petit partage d'expérience sur une erreur php que j'ai eu à corriger hier et qui m'a occupée un bon gros moment, une redirection via headers ne fonctionnait pas m'annonçant que ceux-ci avaient déjà été envoyés via la ligne 1 de mon script... Cependant sur cette ligne il n'y avait rien d'autre que mon tag d'ouverture.

La première étape consiste donc à vérifier que mes fichiers précédemment inclus ne contiennent aucun "echo" ou lignes blanches après ou avant les tags php, tel n'est pas le cas.
Le seconde étape consiste à vérifier que mon hébergeur n'inclus pas de fichier automatiquement avant mes scripts et que mes sessions ne sont pas démarrées automatiquement, je place donc ces éléments au début de mon script :

echo ini_get("auto_prepend_file")
echo ini_get("session.auto_start")

Toujours pas le cas... Cela commence à devenir complexe...

Après quelques temps passé sur google en tentant plusieurs combinaisons de mots clefs pour espérer trouver une solution, je tombe sur quelque chose qui me parrait être un possibilité. Des caractères erronés invisible en affichage texte mais pas en héxadécimal...

Je me lance donc dans cette piste, j'ouvre mon fichier "index.php" via notepad++, pas de problème tout va bien il à l'air normal. Puis je lance l'édition hexadécimal de celui-ci via l'éditeur intégré du logiciel... Et là surprise ! Avant le tag d'ouverture php ("
Ces 3 caractères visibles seulement en hexadécimal étaient bien ceux qui faisaient que les headers ne pouvaient être réenvoyés...

Inutile de dire que je trouve cette petite coquille bien difficile à diagnostiquer, et vraiment loin d'être évidente à corriger pour un utilisateur débutant. Cela dit je pense qu'une des causes possible à cette erreur soit le passage d'un encodage ISO vers un encodage UTF-8 du fichier... Donc un cas que l'on pourrait dire particulier.

J'en fais tout de même un billet afin que la prochaine personne à qui cela arrivera passe moins de temps que moi à chercher sur google.

Continuez votre lecture avec des articles sur des sujets proches :

Contenu similaire :

Par catégories : Développement web
Par tags : développementphp

0 réactions :Laisser un commentaire.

Ajouter un commentaire :

Si vous êtes un humain, laissez ce champ vide (les autres : robots, bots, aliens se feront avoir) / if your are human do not fill

Les champs signalés d'un champs obligatoire sont obligatoires.














A propos

Photographe spécialisé dans le concert, et passioné par la mer ; je suis également un habitué des logiciels libres et du Web dont j'ai fait mon métier. Je tente via AtlzA.com de partager avec vous ces passions.
En savoir plus ...

A vous de voir

Photos flickr

Blogs à Lire

Sites AtlzA.com :

Licence

cc by nc saContenu sous licence Creative-Commons - Certains Droits réservés