appel de hearder() pour l'affichage d'une image

Eléphant du PHP | 177 Messages

13 août 2006, 21:03

Salut tous

Voila mon soucis
<?
//include ( '../jpgraph-2.1.2/src/jpgraph.php');
//include ('../jpgraph-2.1.2/src/jpgraph_line.php' );

$image = imagecreate(200,200);
   $noir =imagecolorallocate($image,255,200,0);


imagepng($image);
   header('Content-Type: image/png');
imagedestroy($image);

?>
Et en retour dans mon navigateur j'ai :
�PNG
Warning: Cannot modify header information - headers already sent by (output started at /home/ael/web/test/image/script/creation.php:2) in /home/ael/web/test/image/script/creation.php on line 11
Je comprend l'erreure mais pas le pourquoi du comment ??

Mammouth du PHP | 991 Messages

13 août 2006, 21:05

il ne doit absolument pas avoir de code html avant le header ...

en esperant que cela t aide

Eléphant du PHP | 177 Messages

13 août 2006, 21:39

Oui mais la c la totalitée du script :)

Mammouth du PHP | 991 Messages

13 août 2006, 21:40

essaye de le placée avant les includes et verifie si il n ya pas d 'espace avant <?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 août 2006, 21:47

Dans ton script, tu mets le imagepng() avant le header().

le imagepng() envoi le code correspondant à l'image et, ensuite, tu envoi les entetes disant que tu envois une image. Il s'agit là d'une erreur de logique. De plus, comme le header() doit être appellé avant tout envoi de caractères, tu obtiens une erreur ...

Essaye de mettre le header() tout au début de ton script ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

13 août 2006, 21:48

j'ai quasiment dit la meme chose mais en moins clair ...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 août 2006, 21:51

Je suis entièrement d'accord avec toi mais je préfère expliquer les erreurs plutôt que de donner simplement la réponse.

Un proverbe que j'aime utiliser est "Donne un poisson à un pauvre, il mangera un jour, apprend lui à pecher, il mangera toute sa vie".

Tout ça pour dire que s'il comprend son erreur, il ne refera pas alors que si on se contente de lui donner la réponse sans explications, rien ne dit qu'il ne refera pas cette erreur demain ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 991 Messages

13 août 2006, 21:52

:merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :merci: :pouce: :pouce: :pouce: :pouce: :pouce: :pouce: :pouce:

Eléphant du PHP | 177 Messages

13 août 2006, 22:08

Merci :)
il y avait effectivement un soucis de logique.
<?
<?

//include ( '../jpgraph-2.1.2/src/jpgraph.php');
//include ('../jpgraph-2.1.2/src/jpgraph_line.php' );
$image = imagecreate(200,200);
   $noir =imagecolorallocate($image,255,200,0);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
cela m'affiche bien un jolie carré jaune orange.