sacré headers

Eléphanteau du PHP | 36 Messages

03 mai 2006, 09:18

Bonjour,

Alors voilà, j'ai créer une petite application de gestion pour mon entreprise en php. Malheureusement je suis confronté sans cesse, lors de l'ajout de nouvelles fonctionnalités aux problèmes de headers.

Par exemple, la semaine dernières j'ai créer un petit module de statistiques (3-4 graphiques en tout, avec l'aide de jpGraph. Evidemment, lors de l'appel aux fonctions graph, il me retourné l'erreur (que je ne peux plus voir en peinture !!! :? ) "Headers already been sent". J'ai quand même réussi à contourner le problème, ouf...

Maintenant je me lance dans l'export vers excel, aprés quelques recherches je me rend compte que je vais être confronter au même problème.

Alors voilà, y'a t'il une méthodologie ou des techniques particulères ajouter des fonctionnalités à une appli sans être confronter sans cesse à ce problème de header ? En gros, ca se gère comment ... les headers...

Merci pour vos réponses

Eléphant du PHP | 493 Messages

03 mai 2006, 09:22

Les headers DOIVENT être avant tout affichage que ce soit. Ainsi tu n'auras jamais (en théorie) d'erreur.

Une autre méthode que je déconseille consiste à retirer la cause des erreurs via ob_clean() avant d'envoyer les headers. Cette méthode n'est pas une solution, juste du camouflage !

Eléphanteau du PHP | 36 Messages

03 mai 2006, 09:31

salut, et merci de repondre,

Donc sur une application même si je n'utilise pas, sur une session, certaines fonctionnalités, je dois quand même déclaré les tous les headers avant toute affichage.

Eléphant du PHP | 493 Messages

03 mai 2006, 09:40

Tout à fait !
  1. Headers
  2. Affichage

Mammouth du PHP | 1029 Messages

03 mai 2006, 10:12


Une autre méthode que je déconseille consiste à retirer la cause des erreurs via ob_clean() avant d'envoyer les headers. Cette méthode n'est pas une solution, juste du camouflage !
tu peux dévelloper svp
L'expérience est la somme de toutes nos erreurs.

Eléphant du PHP | 493 Messages

03 mai 2006, 10:19

Je rappelle avant de développer cette méthode qu'il ne s'agit que d'un camouflage ! Si vous l'utiliser dans votre script, vous ne faites que masquer le problème, un peu comme si pour corriger une erreur vous ajoutiez un @ devant la requête ou pire encore, error_reporting(0) !

Comme vous le savez, si des informations sont envoyés avant l'appel des headers, alors cela produit une erreur, et les headers ne sont pas modifiés (il y a toujours des headers :)).

La fonction ob_clean() permet de vider le buffer, ainsi tout texte (ou données) envoyés avant est effacé. Ainsi il n'y a pas d'erreur lors de l'envoie des headers.