Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-08-2010 19:19:48

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

l'image "" ne peut pas etre afficher car elle contient des erreurs

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:

Code:

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:

Code:

 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:

Code:

<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

 

#2 13-08-2010 03:17:46

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

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

 

#3 13-08-2010 11:05:19

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

Euh ça me fait mal au yeux ton erreur...

Code:

<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 ?

Code:

<div style="float: center">
<img src="serveur/superviser"/>
</div>

Hors ligne

 

#4 13-08-2010 14:05:04

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

J'ai essayé ça ,mais l'erreur reste la meme.

Hors ligne

 

#5 13-08-2010 16:42:24

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

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

 

#6 14-08-2010 03:07:49

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

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

 

#7 14-08-2010 22:56:44

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

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

 

#8 15-08-2010 00:18:54

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

oui en fait ,j'ai essayé en ajoutant header("Content-Type:Image/png") mais ça change toujours rien.

Hors ligne

 

#9 15-08-2010 10:48:40

Ph
Membre
Date d'inscription: 02-01-2010
Messages: 40

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

C'est sensible aux espaces et à la case je vois 2 erreurs dans ton Header wink

Essaye : header("Content-Type: image/png");

Tu devrais regarder via firebug ce qui se passe sur ton réseau wink

Hors ligne

 

#10 15-08-2010 16:03:24

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

j'ai  essayé en changeant le header mais sans résultat.
Si on fait le code suivant dans la  fonction init ():

Code:

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

 

#11 16-08-2010 09:07:00

Ithier
Membre
Date d'inscription: 05-01-2010
Messages: 85

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

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

 

#12 17-08-2010 04:01:41

Jessica
Membre
Date d'inscription: 03-08-2010
Messages: 27

Re: l'image "" ne peut pas etre afficher car elle contient des erreurs

Salut!!
voilà j'ai refait mon code .Je me retrouve avec un autre comportement mais toujours avec la meme erreur:

Code:

<?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:

Code:

<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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages