probleme affichage camembert sous iis mais pas sous wampserver

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme affichage camembert sous iis mais pas sous wampserver

par Hywan » 28 oct. 2008, 17:58

Il existe plein de façon de faire Victor : extension_loaded() qui indique directement sans lister. Ou sinon, un simple $ php -m, enfin bon, il existe plein de solutions :).

par Victor BRITO » 28 oct. 2008, 17:50

cela m'affiche ça :
Array ( [0] => bcmath [1] => calendar [2] => com_dotnet [3] => ctype [4] => date [5] => ftp [6] => hash [7] => iconv [8] => odbc [9] => pcre [10] => Reflection [11] => session [12] => libxml [13] => standard [14] => tokenizer [15] => zlib [16] => SimpleXML [17] => dom [18] => SPL [19] => wddx [20] => xml [21] => xmlreader [22] => xmlwriter [23] => ISAPI [24] => mysql )
L'extension GD n'est donc pas chargée.

par Hywan » 28 oct. 2008, 17:47

Regarde mon premier lien, tu devrais y trouver des choses intéressantes.

par Invité » 28 oct. 2008, 17:46

cela m'affiche ça :
Array ( [0] => bcmath [1] => calendar [2] => com_dotnet [3] => ctype [4] => date [5] => ftp [6] => hash [7] => iconv [8] => odbc [9] => pcre [10] => Reflection [11] => session [12] => libxml [13] => standard [14] => tokenizer [15] => zlib [16] => SimpleXML [17] => dom [18] => SPL [19] => wddx [20] => xml [21] => xmlreader [22] => xmlwriter [23] => ISAPI [24] => mysql )

par Victor BRITO » 28 oct. 2008, 17:43

comment es-ce qu ecela s'affiche sur le php info ? j'arrive pas a le trouver
Tu peux aussi utiliser la fonction get_loaded_extensions(), qui retourne un tableau des extensions chargées sur le serveur :
print_r (get_loaded_extensions ());

par Invité » 28 oct. 2008, 17:40

sur mon php.ini j'ai enlevé le ; devant extension=php_gd2.dll. j'ai redémarrer. mais toujours rien d'affiché!!! Le seul gd que j'ai d'afficher est afficher sous la forme : Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"

il faut que je fasse quoi dans se cas ?

merci

par Hywan » 28 oct. 2008, 17:29

C'est qu'il n'est pas installé (ou chargé) alors. Normalement, tu as un titre de section nommé « GD ». Un simple Pomme + F (ou Ctrl + F pour les autres là ;-)) devrait suffir à le trouver, sinon bah, il n'est ni chargé ni installé.

par Invité » 28 oct. 2008, 17:00

comment es-ce qu ecela s'affiche sur le php info ? j'arrive pas a le trouver

par caroube » 28 oct. 2008, 16:21

GD n'a rien, mais alors strictement rien à voir avec Apache ou IIS.
Il suffit que le module de PHP php_gd2.dll soit activé dans le php.ini pour que GD soit disponible dans PHP quelque soit le serveur Web utilisé.

Peut-être une première chose à faire, après avoir vérifié le phpinfo, c'est un code tout simple pour voir si tu arrives à dessiner une image avec GD dans l'une ou l'autre des configs parce que ton camembert, j'arrive parfaitement à le dessiner avec PHP sous IIS.

par Hywan » 28 oct. 2008, 16:01

Hey :),

Et que dit le manuel : php.net/image Comme PHP fait appel à GD, je doute que ça existe sous Windows …
WampServer c'est sous Windows aussi...tu voulais dire sous IIS ?
Exact. Merci mere-teresa d'avoir précisé :).

par mere-teresa » 28 oct. 2008, 15:59

Déjà peux tu faire un fichier contenant juste
phpinfo();

et regarder si GD (en faisant une recherche sur la page web) est activé ?

par Invité » 28 oct. 2008, 15:51

donc ce que vous voulez dire c'est que gd n'est pas installé sous iis ? comment je fais pour l'installer dans ce cas ?

merci

par mere-teresa » 28 oct. 2008, 15:49

Hey :),

Et que dit le manuel : php.net/image Comme PHP fait appel à GD, je doute que ça existe sous Windows …
WampServer c'est sous Windows aussi...tu voulais dire sous IIS ?

par Hywan » 28 oct. 2008, 15:46

Hey :),

Et que dit le manuel : php.net/image Comme PHP fait appel à GD, je doute que ça existe sous Windows …

probleme affichage camembert sous iis mais pas sous wampserv

par Invité » 28 oct. 2008, 15:01

Bonjour,

Voila, je crois que tout est dans le titre. J'ai une fenêtre qui normalement m'affiche des camemberts, qui fonctionne très bien sous wampserver, mais sous iis rien ne s'affiche. (je vous mets le code) :
<?php 
session_start(); 

/*
if (isset($_GET['a']))
    $a = $_GET['a'];

if (isset($_GET['b']))
    $b = $_GET['b'];
	
if (isset($_GET['c']))
    $c = $_GET['c'];

if (isset($_GET['d']))
    $d = $_GET['d'];
	*/
	$a=5;
	$b=10;
	$c=10;
	$d=10;

function camembert($arr)
{
   $size=3;                  /* taille de la police, largeur du caractère */
   $ifw=imagefontwidth($size);

   $w=500;                   /* largeur de l'image */
   $h=250;                   /* hauteur de l'image */
   $a=120;                   /* grand axe du camembert */
   $b=$a/2;                  /* 60 : petit axe du camembert */
   $d=$a/2;                  /* 60 : "épaisseur" du camembert */
   $cx=$w/2-1;               /* abscisse du "centre" du camembert */
   $cy=($h-$d)/2;            /* 95 : ordonnée du "centre" du camembert */

   $A=138;                   /* grand axe de l'ellipse "englobante" */
   $B=102;                   /* petit axe de l'ellipse "englobante" */
   $oy=-$d/2;                /* -30 : du "centre" du camembert à celui de l'ellipse "englobante"*/

   $img=imagecreate($w,$h);  
   $bgcolor=imagecolorallocate($img,0xCD,0xCD,0xCD);
   imagecolortransparent($img,$bgcolor);
   $black=imagecolorallocate($img,0,0,0);
                             /* calcule la somme des données */
   for ($i=$sum=0,$n=count($arr);$i<$n;$i++) $sum+=$arr[$i][0];

   /* fin des préliminaires : on peut vraiment commencer! */
   for ($i=$v[0]=0,$x[0]=$cx+$a,$y[0]=$cy,$doit=true;$i<$n;$i++) {
      for ($j=0,$k=16;$j<3;$j++,$k-=8) $t[$j]=($arr[$i][1]>>$k) & 0xFF;
                             /* détermine les "vraies" couleurs */
      $color[$i]=imagecolorallocate($img,$t[0],$t[1],$t[2]);
                             /* calcule l'angle des différents "secteurs" */
      $v[$i+1]=$v[$i]+round($arr[$i][0]*360/$sum);

      if ($doit) {           /* détermine les couleurs "ombrées" */
         $shade[$i]=imagecolorallocate($img,max(0,$t[0]-50),max(0,$t[1]-50),max(0,$t[2]-50));

         if ($v[$i+1]<180) { /* calcule les coordonnées des différents parallélogrammes */
            $x[$i+1]=$cx+$a*cos($v[$i+1]*M_PI/180);
            $y[$i+1]=$cy+$b*sin($v[$i+1]*M_PI/180);
         }
         else {
            $m=$i+1;
            $x[$m]=$cx-$a;   /* c'est comme si on remplaçait $v[$i+1] par 180° */
            $y[$m]=$cy;
            $doit=false;     /* indique qu'il est inutile de continuer! */
         }
      }
   }

   /* dessine la "base" du camembert */
   for ($i=0;$i<$m;$i++) imagefilledarc($img,$cx,$cy+$d,2*$a,2*$b,$v[$i],$v[$i+1],$shade[$i],IMG_ARC_PIE);

   /* dessine la partie "verticale" du camembert */
   for ($i=0;$i<$m;$i++) {
      $area=array($x[$i],$y[$i]+$d,$x[$i],$y[$i],$x[$i+1],$y[$i+1],$x[$i+1],$y[$i+1]+$d);
      imagefilledpolygon($img,$area,4,$shade[$i]);
   }

   /* dessine le dessus du camembert */
   for ($i=0;$i<$n;$i++) imagefilledarc($img,$cx,$cy,2*$a,2*$b,$v[$i],$v[$i+1],$color[$i],IMG_ARC_PIE);

   /*imageellipse($img,$cx,$cy-$oy,2*$A,2*$B,$black); // dessine l'ellipse "englobante" */

   /* dessine les "flêches" et met en place le texte */
   for ($i=0,$AA=$A*$A,$BB=$B*$B;$i<$n;$i++) if ($arr[$i][0]) {
      $phi=($v[$i+1]+$v[$i])/2;      
                             /* intersection des "flêches" avec l'ellipse "englobante" */
      $px=$a*3*cos($phi*M_PI/180)/4;
      $py=$b*3*sin($phi*M_PI/180)/4;
                             /* équation du 2ème degré avec 2 racines réelles et distinctes */
      $U=$AA*$py*$py+$BB*$px*$px;        
      $V=$AA*$oy*$px*$py;
      $W=$AA*$px*$px*($oy*$oy-$BB);
                             /* calcule le pourcentage à afficher */
      $value=number_format(100*$arr[$i][0]/$sum,2,',','').'%';
                             /* écrit le texte à droite */
      if ($phi<90 || $phi>270) {          
         $root=(-$V+sqrt($V*$V-$U*$W))/$U;
         imageline($img,$px+$cx,$py+$cy,$qx=$root+$cx,$qy=$root*$py/$px+$cy,$black);
         imageline($img,$qx,$qy,$qx+10,$qy,$black);

         imagestring($img,$size,$qx+14,$qy-12,$arr[$i][2],$black);
         imagestring($img,$size,$qx+14,$qy-2,$value,$black);
      }
      else {                 /* écrit le texte à gauche */
         $root=(-$V-sqrt($V*$V-$U*$W))/$U;
         imageline($img,$px+$cx,$py+$cy,$qx=$root+$cx,$qy=$root*$py/$px+$cy,$black);
         imageline($img,$qx,$qy,$qx-10,$qy,$black);

         imagestring($img,$size,$qx-12-$ifw*strlen($arr[$i][2]),$qy-12,$arr[$i][2],$black);
         imagestring($img,$size,$qx-12-$ifw*strlen($value),$qy-2,$value,$black);
      }
   }

   header('Content-type: image/png');
   imagepng($img);
   imagedestroy($img);
}



$arr=array();
if ($a!=0) { $arr[]=array($a, 0x99CC00, "Notation 1"); } 
if ($b!=0) { $arr[]=array($b, 0x339966, "Notation 2"); } 
if ($c!=0) { $arr[]=array($c, 0x33CCCC, "Notation 3"); } 
if ($d!=0) { $arr[]=array($d, 0x0091C3, "Notation 4"); } 

camembert($arr);   
 ?>
faut il faire un paramétrage pour que cela fonctionne sous iis, ou quelque chose a ajouter ? merci