Page 1 sur 1

problème header

Posté : 09 mai 2011, 18:48
par fred619
En executant ce script j'ai un problème au niveau de cette instruction : header ("Content-type: image/png");
Il m'affiche comme message d'erreur : Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\

Code : Tout sélectionner

<?php // information pour la connection à le DB $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'supervision'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // requête SQL qui compte le nombre total d'enregistrements dans la table et qui //récupère tous les enregistrements $select1 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-01-01 00:00:01') AND (status_fail_date < '2011-02-01 00:00:01') "; $result1 = mysql_query($select1,$link) or die ('Erreur : '.mysql_error() ); $select2 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-02-01 00:00:01') AND (status_fail_date < '2011-03-01 00:00:01') "; $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() ); $select3 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-03-01 00:00:01') AND (status_fail_date < '2011-04-01 00:00:01') "; $result3 = mysql_query($select3,$link) or die ('Erreur : '.mysql_error() ); $select4 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-04-01 00:00:01') AND (status_fail_date < '2011-05-01 00:00:01') "; $result4 = mysql_query($select4,$link) or die ('Erreur : '.mysql_error() ); $select5 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-05-01 00:00:01') AND (status_fail_date < '2011-06-01 00:00:01') "; $result5 = mysql_query($select5,$link) or die ('Erreur : '.mysql_error() ); $select6 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-06-01 00:00:01') AND (status_fail_date < '2011-07-01 00:00:01') "; $result6 = mysql_query($select6,$link) or die ('Erreur : '.mysql_error() ); $select7 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-07-01 00:00:01') AND (status_fail_date < '2011-08-01 00:00:01') "; $result7 = mysql_query($select7,$link) or die ('Erreur : '.mysql_error() ); $select8 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-08-01 00:00:01') AND (status_fail_date < '2011-09-01 00:00:01') "; $result8 = mysql_query($select8,$link) or die ('Erreur : '.mysql_error() ); $select9 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-09-01 00:00:01') AND (status_fail_date < '2011-10-01 00:00:01') "; $result9 = mysql_query($select9,$link) or die ('Erreur : '.mysql_error() ); $select10 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-10-01 00:00:01') AND (status_fail_date < '2011-11-01 00:00:01') "; $result10 = mysql_query($select10,$link) or die ('Erreur : '.mysql_error() ); $select11 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-11-01 00:00:01') AND (status_fail_date < '2011-12-01 00:00:01') "; $result11 = mysql_query($select11,$link) or die ('Erreur : '.mysql_error() ); $select12 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - HUAWEI') AND (status_fail_date >= '2011-12-01 00:00:01') AND (status_fail_date < '2012-01-01 00:00:01') "; $result12 = mysql_query($select12,$link) or die ('Erreur : '.mysql_error() ); $select13 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-01-01 00:00:01') AND (status_fail_date < '2011-02-01 00:00:01') "; $result13 = mysql_query($select13,$link) or die ('Erreur : '.mysql_error() ); $select14 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-02-01 00:00:01') AND (status_fail_date < '2011-03-01 00:00:01') "; $result14 = mysql_query($select14,$link) or die ('Erreur : '.mysql_error() ); $select15 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-03-01 00:00:01') AND (status_fail_date < '2011-04-01 00:00:01') "; $result15 = mysql_query($select15,$link) or die ('Erreur : '.mysql_error() ); $select16 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-04-01 00:00:01') AND (status_fail_date < '2011-05-01 00:00:01') "; $result16 = mysql_query($select16,$link) or die ('Erreur : '.mysql_error() ); $select17 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-05-01 00:00:01') AND (status_fail_date < '2011-06-01 00:00:01') "; $result17 = mysql_query($select17,$link) or die ('Erreur : '.mysql_error() ); $select18 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-06-01 00:00:01') AND (status_fail_date < '2011-07-01 00:00:01') "; $result18 = mysql_query($select18,$link) or die ('Erreur : '.mysql_error() ); $select19 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-07-01 00:00:01') AND (status_fail_date < '2011-08-01 00:00:01') "; $result19 = mysql_query($select19,$link) or die ('Erreur : '.mysql_error() ); $select20 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-08-01 00:00:01') AND (status_fail_date < '2011-09-01 00:00:01') "; $result20 = mysql_query($select20,$link) or die ('Erreur : '.mysql_error() ); $select21 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-09-01 00:00:01') AND (status_fail_date < '2011-10-01 00:00:01') "; $result21 = mysql_query($select21,$link) or die ('Erreur : '.mysql_error() ); $select22 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-10-01 00:00:01') AND (status_fail_date < '2011-11-01 00:00:01') "; $result22 = mysql_query($select22,$link) or die ('Erreur : '.mysql_error() ); $select23 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-11-01 00:00:01') AND (status_fail_date < '2011-12-01 00:00:01') "; $result23 = mysql_query($select23,$link) or die ('Erreur : '.mysql_error() ); $select24 = "SELECT COUNT(hostname) AS nbre FROM stat where (marque = 'MSAN - SIEMENS') AND (status_fail_date >= '2011-12-01 00:00:01') AND (status_fail_date < '2012-01-01 00:00:01') "; $result24 = mysql_query($select24,$link) or die ('Erreur : '.mysql_error() ); mysql_close(); while ($row1 = mysql_fetch_array($result1, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x1=$row1['nbre'] ; // echo $x1 ; } while ($row2 = mysql_fetch_array($result2, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x2=$row2['nbre'] ; // echo $x1 ; } while ($row3 = mysql_fetch_array($result3, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x3=$row3['nbre'] ; // echo $x1 ; } while ($row4 = mysql_fetch_array($result4, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x4=$row4['nbre'] ; // echo $x1 ; } while ($row5 = mysql_fetch_array($result5, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x5=$row5['nbre'] ; // echo $x1 ; } while ($row6 = mysql_fetch_array($result6, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x6=$row6['nbre'] ; // echo $x1 ; } while ($row7 = mysql_fetch_array($result7, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x7=$row7['nbre'] ; // echo $x1 ; } while ($row8 = mysql_fetch_array($result8, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x8=$row8['nbre'] ; // echo $x1 ; } while ($row9 = mysql_fetch_array($result9, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x9=$row9['nbre'] ; // echo $x1 ; } while ($row10 = mysql_fetch_array($result10, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x10=$row10['nbre'] ; // echo $x1 ; } while ($row11 = mysql_fetch_array($result11, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x11=$row11['nbre'] ; // echo $x1 ; } while ($row12 = mysql_fetch_array($result12, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x12=$row12['nbre'] ; // echo $x1 ; } while ($row13 = mysql_fetch_array($result13, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x13=$row13['nbre'] ; // echo $x1 ; } while ($row14 = mysql_fetch_array($result14, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x14=$row14['nbre'] ; // echo $x1 ; } while ($row15 = mysql_fetch_array($result15, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x15=$row15['nbre'] ; // echo $x1 ; } while ($row16 = mysql_fetch_array($result16, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x16=$row16['nbre'] ; // echo $x1 ; } while ($row17 = mysql_fetch_array($result17, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x17=$row17['nbre'] ; // echo $x1 ; } while ($row18 = mysql_fetch_array($result18, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x18=$row18['nbre'] ; // echo $x1 ; } while ($row19 = mysql_fetch_array($result19, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x19=$row19['nbre'] ; // echo $x1 ; } while ($row20 = mysql_fetch_array($result20, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x20=$row20['nbre'] ; // echo $x1 ; } while ($row21 = mysql_fetch_array($result21, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x21=$row21['nbre'] ; // echo $x1 ; } while ($row22 = mysql_fetch_array($result22, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x22=$row['nbre'] ; // echo $x1 ; } while ($row23 = mysql_fetch_array($result23, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x23=$row23['nbre'] ; // echo $x1 ; } while ($row24 = mysql_fetch_array($result24, MYSQL_ASSOC)) { //echo $row['nbre'] ; $x24=$row24['nbre'] ; // echo $x1 ; } $visites = array(); $visites1 = array(); $visites[0] = $x1; $visites[1] = $x2; $visites[2] = $x3; $visites[3] = $x4; $visites[4] = $x5; $visites[5] = $x6; $visites[6] = $x7; $visites[7] = $x8; $visites[8] = $x9; $visites[9] = $x10; $visites[10] = $x11; $visites[11] = $x12; $visites1[12] = $x13; $visites1[13] = $x14; $visites1[2] = $x15; $visites1[3] = $x16; $visites1[4] = $x17; $visites1[5] = $x18; $visites1[6] = $x19; $visites1[7] = $x20; $visites1[8] = $x21; $visites1[9] = $x22; $visites1[10] = $x23; $visites1[11] = $x24; header ("Content-type: image/png"); $largeurImage = 400; $hauteurImage = 300; $im = ImageCreate ($largeurImage, $hauteurImage) or die ("Erreur lors de la création de l'image"); $blanc = ImageColorAllocate ($im, 255, 255, 255); $noir = ImageColorAllocate ($im, 0, 0, 0); $bleu = ImageColorAllocate ($im, 0, 0, 255); $rouge = ImageColorAllocate ($im, 255, 0, 0); $vert = ImageColorAllocate ($im, 0, 255, 0); // on dessine un trait vertical pour représenter l'axe du temps ImageLine ($im, 10, $hauteurImage-10, $largeurImage-10, $hauteurImage-10, $noir); // on affiche le numéro des 12 mois for ($mois=1; $mois<=12; $mois++) { ImageString ($im, 0, $mois*30, $hauteurImage-10, $mois, $noir); } // on dessine un trait vertical pour représenter le nombre de visites ImageLine ($im, 10, 10, 10, $hauteurImage-10, $noir); // le nombre maximum de visites $visitesMax = 1000; $visitesMax1 = 1000; // tracé des batons for ($mois=1; $mois<=12; $mois++) { $hauteurImageRectangle = round(($visites[$mois-1]*$hauteurImage)/$visitesMax); $hauteurImageRectangle1 = round(($visites1[$mois-1]*$hauteurImage)/$visitesMax1); ImageFilledRectangle ($im, $mois*30-7, $hauteurImage-$hauteurImageRectangle, $mois*30+7, $hauteurImage-10, $rouge); ImageFilledRectangle ($im,$mois*30+7, $hauteurImage-$hauteurImageRectangle1, ($mois*30+7)+($mois*30+7) - ($mois*30-7) , $hauteurImage-10, $bleu); ImageString ($im, 1, $mois*30-7, $hauteurImage-$hauteurImageRectangle-10, $visites[$mois-1], $rouge); ImageString ($im, 1, $mois*30+7, $hauteurImage-$hauteurImageRectangle1-10, $visites1[$mois-1], $bleu); } // et c'est fini... ImagePng ($im); msql_free_result($result1); msql_free_result($result2); msql_free_result($result3); msql_free_result($result4); msql_free_result($result5); msql_free_result($result6); msql_free_result($result7); msql_free_result($result8); msql_free_result($result9); msql_free_result($result10); msql_free_result($result11); msql_free_result($result12); msql_free_result($result13); msql_free_result($result14); msql_free_result($result15); msql_free_result($result16); msql_free_result($result17); msql_free_result($result18); msql_free_result($result19); msql_free_result($result20); msql_free_result($result21); msql_free_result($result22); msql_free_result($result23); msql_free_result($result24); ?>
Par contre si j'execute le script avec des valeurs statiques , il marche comme celui ci :

Code : Tout sélectionner

<?php $visites = array(10, 90, 381, 652, 896, 720, 140, 556, 663, 331, 407, 768); $visites1 = array(199, 891, 356, 200, 700, 200, 330, 500, 900, 390, 400, 600); header ("Content-type: image/png"); $largeurImage = 400; $hauteurImage = 300; $im = ImageCreate ($largeurImage, $hauteurImage) or die ("Erreur lors de la création de l'image"); $blanc = ImageColorAllocate ($im, 255, 255, 255); $noir = ImageColorAllocate ($im, 0, 0, 0); $bleu = ImageColorAllocate ($im, 0, 0, 255); $rouge = ImageColorAllocate ($im, 255, 0, 0); $vert = ImageColorAllocate ($im, 0, 255, 0); // on dessine un trait vertical pour représenter l'axe du temps ImageLine ($im, 10, $hauteurImage-10, $largeurImage-10, $hauteurImage-10, $noir); // on affiche le numéro des 12 mois for ($mois=1; $mois<=12; $mois++) { ImageString ($im, 0, $mois*30, $hauteurImage-10, $mois, $noir); } // on dessine un trait vertical pour représenter le nombre de visites ImageLine ($im, 10, 10, 10, $hauteurImage-10, $noir); // le nombre maximum de visites $visitesMax = 1000; $visitesMax1 = 1000; // tracé des batons for ($mois=1; $mois<=12; $mois++) { $hauteurImageRectangle = round(($visites[$mois-1]*$hauteurImage)/$visitesMax); $hauteurImageRectangle1 = round(($visites1[$mois-1]*$hauteurImage)/$visitesMax1); ImageFilledRectangle ($im, $mois*30-7, $hauteurImage-$hauteurImageRectangle, $mois*30+7, $hauteurImage-10, $rouge); ImageFilledRectangle ($im,$mois*30+7, $hauteurImage-$hauteurImageRectangle1, ($mois*30+7)+($mois*30+7) - ($mois*30-7) , $hauteurImage-10, $bleu); ImageString ($im, 1, $mois*30-7, $hauteurImage-$hauteurImageRectangle-10, $visites[$mois-1], $rouge); ImageString ($im, 1, $mois*30+7, $hauteurImage-$hauteurImageRectangle1-10, $visites1[$mois-1], $bleu); } // et c'est fini... ImagePng ($im); ?>
Merci de m'aider

Re: problème header

Posté : 09 mai 2011, 20:51
par moogli
salut,

regarde le message d'erreur jusqu'au bout et tu aura la ligne qui pose problème :)

Coté code je pense qu'il doit y avoir moyen de grouper par heure les infos par heure et non faire 23 requêtes ce qui est peux pratique et peux maintenable.

Edit : pour la requete SQL : select count(hostname) as nbre,hour(status_fail_date) as heure from stat where (marque = 'MSAN - HUAWEI') and date(status_fail_date)='2001-02-15' group by hour(status_fail_date); ça donne un tuple par heure présente dans la table, au pire après tu complète le table fournis avec les heures non présente (et un zéro pour nombre de panne).

@+

Re: problème header

Posté : 09 mai 2011, 20:53
par Invité
salut,

regarde le message d'erreur jusqu'au bout et tu aura la ligne qui pose problème :)

Coté code je pense qu'il doit y avoir moyen de grouper par heure les infos par heure et non faire 23 requêtes ce qui est peux pratique et peux maintenable.


@+

le problème est header : header ("Content-type: image/png");

Re: problème header

Posté : 09 mai 2011, 21:11
par Mazarini
Bonjour,

Comme expliqué précédement, le problème se situe dans la partie non fourni du message d'erreur :
headers already sent by (output started at C:\wamp\www\[/b]