Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Salut tout le monde,
je veux créer des graphes (tq des camemberts..) dans mon application.Pour ce faire ,j'ai installé Jpgraph. Je vous montre ici le code que j'ai fait dans mon controlleur et dans la vue correspondante :
ServeurController/superviserAction:
public function superviserAction() { //$this->_helper->viewRenderer->setNoRender(); //$this->_helper->layout->disableLayout(); date_default_timezone_set('Australia/Sydney'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph.php'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph_pie.php'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph_pie3d.php'); $tab=array(); //$i=0; //$taille=0; $sortie=shell_exec('df'); file_put_contents('sortie.txt',$sortie); $ligne=file('sortie.txt'); $taille=count($ligne)-1; $pos=strpos($ligne[0],'Use%'); for($i=1; $i<=$taille;$i++) { $str=substr($ligne[$i],$pos,3); if(strlen($str)<3) { $str=trim($str,'%'); } $str=trim($str); $tab[$i]=intval($str); } //for($j=1;$j<=$taille;$j++) //echo $tab[$j].'<br>'; $this->camembert($tab); }
J'ai défini la fonction camembert comme suit:
public function camembert($data) { $graph=new PieGraph(500,300); $graph->title->Set('Taux d\'utilisation du disque dur'); $graph->img->SetMargin(40,140,20,40); $p1=new PiePlot3D($data); $graph->Add($p1); $graph->Stroke(); //echo '<img src="graph.png">'; //$this->view->graph=$graph; }
le code de la vue superviser.phtml:
<div style="float: center"> <img src="ServeurController.php"/> </div>
Mais quand je l'execute , j'obtiens l'erreur:
L'image "http://Jessica.stage/serveur/superviser" ne peut pas etre affichée car elle contient des erreurs.
Si quelqu'un a une idée sur la cause de cette erreur .je suis preneuse
merci d'avance.
Hors ligne
Salut!
svp aidez moi ,ça fait deux jours que je cherche ,j'ai enlever les espaces avant <?php et j'ai pas utilisé les end tag ('?>'),j'ai désactivé egalement le output-buffering dans php.ini ,mais sans aucun résultat!!!
Je demande pas la solution exacte mais une piste qui me permet d'afficher des erreurs plus explictes que celle que j'obtiens.
Merci
Hors ligne
Euh ça me fait mal au yeux ton erreur...
<div style="float: center"> <img src="ServeurController.php"/> </div>
Depuis quand on mais en dur un nom de fichier php ??
Et le routage t'en fait quoi ?
<div style="float: center"> <img src="serveur/superviser"/> </div>
Hors ligne
J'ai essayé ça ,mais l'erreur reste la meme.
Hors ligne
Salut,
Dis moi, c'est normal que les vues et layout ne soient pas désactivé dans ton action de création de l'image? (deux ligne de désactivations mis en commentaires au début de ta fonction)
Si j'en crois ton code, tu as ton image qui retourné accompagné de la vue et du layout. De quoi rendre l'image invalide.
Hors ligne
j'ai essayé au début de désactiver le layout et la vue mais ça change pas que ça soit avec ou sans activation de la vue et du layout.
Hors ligne
et l'ajout d'en-tête? car ça devrai te retourner un format image donc il faut l'en-tête adapté non?
Hors ligne
oui en fait ,j'ai essayé en ajoutant header("Content-Type:Image/png") mais ça change toujours rien.
Hors ligne
C'est sensible aux espaces et à la case je vois 2 erreurs dans ton Header
Essaye : header("Content-Type: image/png");
Tu devrais regarder via firebug ce qui se passe sur ton réseau
Hors ligne
j'ai essayé en changeant le header mais sans résultat.
Si on fait le code suivant dans la fonction init ():
contextSwitch = $this->_helper->getHelper('contextSwitch'); $contextSwitch->addContext('png', array( 'suffix' => 'png', 'headers' => array('Content-Type' => 'image/png'), )); $contextSwitch->addActionContext('superviser','png'); $contextSwitch->initContext();
est ce que ça veut dire que la vue correspondante à l'action superviser doit porter le nom 'superviser.png.phtml' ??
Merci à l'avance pour vos réponses.
Hors ligne
Tu devrais regarder avec Firebug ce que tu reçois. Tu pourras ainsi voir si ce qui est mauvais est ton entête ou l'image en elle même.
Hors ligne
Salut!!
voilà j'ai refait mon code .Je me retrouve avec un autre comportement mais toujours avec la meme erreur:
<?php class Supervision1Controller extends Zend_Controller_Action { public function init() { } public function indexAction() { } public function superviserAction() { $this->_helper->layout->disableLayout(); date_default_timezone_set('Australia/Sydney'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph.php'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph_pie.php'); include(APPLICATION_PATH . '/jpgraph/src/jpgraph_pie3d.php'); $tab=array(); $sortie=shell_exec('df'); file_put_contents('sortie.txt',$sortie); $ligne=file('sortie.txt'); $taille=count($ligne)-1; $pos=strpos($ligne[0],'Use%'); for($i=1; $i<=$taille;$i++) { $str=substr($ligne[$i],$pos,3); if(strlen($str)<3) { $str=trim($str,'%'); } $str=trim($str); $tab[$i]=intval($str); } $graph=new PieGraph(500,300); $graph->title->Set('Taux utilisation du disque dur'); $graph->img->SetMargin(40,140,20,40); $graph->img->SetImgFormat('png'); $p1=new PiePlot3D($tab); $graph->Add($p1); $graph->Stroke(); } }
et je mets le code suivant dans la vue superviser.phtml:
<html> <body> <img src="<?php $this->action(superviser,Supervision1);?>"/> </body> </html>
Benh,maintenat, lorsque je commente la ligne $graph->Stroke(); j'obtiens une image déchirée mais lorsque je la laisse j'obtiens le meme message d'erreur!!
Prière de m'aider
Merci
Hors ligne
Pages: 1