Problème pour ajouter une classe [Résolu]

Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
- - Dernière réponse : theflayer
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
- 19 oct. 2011 à 15:04
Bonjour tous le monde.

Alors voila je fais un petit site, il est quasi terminer (merci a nemo_1 pour son aide)
et la je planche sur un soucis surement bête.

J'ai télécharger un camembert 2D/3D gratuit, qui marche très bien.
Je change ces valeur en fonction de ma BDD, pas de soucis. Par contre j'aimerais que le camembert s'affiche dans mon

mais quand j'essaye ca me retourne une page blanche !

Voici les 2 codes du dit camembert : le premier est sur ma page compte.php et c'est sur celle ci que j'aimerais qu'elle s'affiche.

<?php
session_start();
include('base.php');

Base();

$sql = mysql_query('SELECT * FROM tickets WHERE catTicket="messagerie"');
$messagerie = mysql_num_rows($sql);

$sql2 = mysql_query('SELECT * FROM tickets WHERE catTicket="reseau"');
$reseau = mysql_num_rows($sql2);

$sql3 = mysql_query('SELECT * FROM tickets WHERE catTicket="materiel"');
$materiel = mysql_num_rows($sql3);

$sql4 = mysql_query('SELECT * FROM tickets WHERE catTicket="logiciel"');
$logiciel = mysql_num_rows($sql4);

mysql_close();

 require("camembert.php"); # on charge la classe camembert
  
 $camembert = new camembert(); # initialisation

 # on peut utiliser une requete SQL pour alimenter le tableau
 $camembert->add_tab( $messagerie, "Messagerie");
 $camembert->add_tab( $reseau, "Reseau");
 $camembert->add_tab( $materiel, "Materiel");
 $camembert->add_tab( $logiciel, "Logiciel");


 $camembert->trier_tab(); # Facultatif, les donnees sont triees dans l'ordre decroissant
 # $camembert->affiche_tab(); # Debug
 
 # on genere l'image au format PNG
 $camembert->stat2png(3, 15); # 1er argument (2 ou 3 pour la 2D ou la 3D) - 2eme argument hauteur en pixel de l'effet 3D (mettre quelque chose meme pour la 2D)		


La page qui lance et maintenant celle de la classe :

<?php
# Camembert 2D/3D - 03/05/2008
# Auteur : Didier STRAUS (C)2008 www.Software-DS.com
# Description: Cree une image PNG en camembert a partir des donnees fournies.
# Demo en ligne : http://www.software-ds.com/PHP/Camembert-2D-3D/demo-camembert.php

class camembert {
 var $dim;  # dim de position dans le tableau
 var $tabVal; # tableau des valeurs
 var $tabNom; # tableau des noms
 var $tot;    # total des valeurs

### camembert : constructeur / initialisation
 function camembert() {
  $this->dim = 0;
  $this->tot = 0;
  
  $this->tabVal=array();
  $this->tabNom=array();
 } # fin camembert


### add_tab : ajoute une donnee au tableau (valeur + libelle)
 function add_tab($val, $nom) {
  if ($val > 0) {
   $this->tabVal[$this->dim] = $val;
   $this->tabNom[$this->dim] = $nom;
   $this->tot = $this->tot + $val; # calcul du total
   $this->dim++; # MAJ de l'dim
  }
 } # fin add_tab


### trier_tab : trie le tableau par ordre decroissant
 function trier_tab() {
  if ($this->dim > 1) { # tri necessaire ?
  
   for($i=0;$i<$this->dim-1;$i++) {
    $maxi = $this->tabVal[$i];

    for($j=$i+1;$j<$this->dim;$j++) {
     if ($maxi < $this->tabVal[$j]) { # on echange les positions dans le tableau
      $maxi  = $this->tabVal[$j];
      $inter = $this->tabNom[$j];
      
      $this->tabVal[$j] = $this->tabVal[$i];
      $this->tabNom[$j] = $this->tabNom[$i];

      $this->tabVal[$i] = $maxi;
      $this->tabNom[$i] = $inter;      
     }
    } # for j 
   } # for i
  } # if
 } # fin trier_tab


### affiche_tab : affiche les donnees du tableau, utile pour utile Debug
 function affiche_tab() {
  for($i=0; $i<$this->dim; $i++) {
   echo $this->tabNom[$i].' '.$this->tabVal[$i].'
';
  } # for
 } # fin affiche_tab
 

### stat2png : genere une image camembert au format PNG
 function stat2png($mode, $hauteur_effet_3D) {
  $width       = 370; # largeur de l'image
  $height      = 220; # hauteur de l'image
  $centre_x    = 110; # poisition X du centre du camembert
  $centre_y    = 110; # poisition Y du centre du camembert
  $cam_largeur = 200; # largeur du camembert
  $cam_hauteur = 160; # hauteur du camembert

  # declaration/initialisation de l'image
  $img = imagecreatetruecolor($width, $height) or die("Probleme : Chargement de la lib GD impossible");

  # declaration des couleurs
  $noir  = imagecolorallocate($img,0,0,0);
  $vert  = imagecolorallocate($img,90,160,90);
  $blanc = imagecolorallocate($img,255,255,255);

  ImageFill( $img, 0, 0, $blanc ); # couleur de fond de l'image (blanc)
  
  if ($mode<>2 && $mode<>3) { # controle du mode
   $mode = 2;
  }
  
  if ($mode == 2) {
   $cam_largeur = $cam_hauteur; # pour la 2D on veut un cercle et pas une ellipse
  }
  
  $tot_angle = -90; # on commence a afficher les donnees a partir de midi

  # variables pour generer les couleurs du camembert
  $v2 = 185;
  $v1 = 75;
  $c  = 0;
  
  for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert, on calcul la couleur et les angles
   
   # on genere une couleur differente a chaque iteration et on la memorise
   if ($c==0) {
    $tab_couleurs[$i][0][0] = $v1; # R
    $tab_couleurs[$i][0][1] = $v2; # G
    $tab_couleurs[$i][0][2] = $v2; # B
   }
   else if ($c==1) {
    $tab_couleurs[$i][0][0] = $v2; # R
    $tab_couleurs[$i][0][1] = $v1; # G
    $tab_couleurs[$i][0][2] = $v2; # B
   }
   else if ($c==2) {
    $tab_couleurs[$i][0][0] = $v2; # R
    $tab_couleurs[$i][0][1] = $v2; # G
    $tab_couleurs[$i][0][2] = $v1; # B
   }
   
   $c++;
   # calcul complexe pour changer de couleur
   if ($c==3) {
    $c   = 0;
    $v1 += 60;
    $v2 -= 40;
    
if (abs($v1-$v2) < 40) {
     $v1 += 30;
     $v2 -= 30;
    } # if
   } # if

   # on assombrit la couleur et on la memorise
   $dark = 35; # modifier cette valeur pour modifier l'assombrissement des couleurs

   for($k=0; $k<3; $k++) { # R G B
 
    if ($tab_couleurs[$i][0][$k] - $dark > 0)
     $tab_couleurs[$i][1][$k] = $tab_couleurs[$i][0][$k] - $dark;
    else
     $tab_couleurs[$i][1][$k] = 0;

   } # for($k=0; k<3; k++)

   # on calcul et memorise l'angle
   $tab_angle[$i] = $tot_angle;
   $angle = ($this->tabVal[$i] * 360) / $this->tot;
   $tot_angle += $angle;

  } # for($i=0; $i<$this->dim; $i++)

  $tab_angle[$this->dim] = $tot_angle; # on n'oublie pas de memoriser le dernier angle ;)


  # on peut commencer a afficher les morceaux de camemberts
   
  if ($mode == 3) { # Effet 3D
      
   for($k=$centre_y + $hauteur_effet_3D; $k > $centre_y; $k--) { # pour avoir un effet 3D de 10 pixels

    for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert
         
     # creation de la couleur sombre
     $color = imagecolorallocate( $img, $tab_couleurs[$i][1][0], $tab_couleurs[$i][1][1], $tab_couleurs[$i][1][2] ); # R G B
       
 # on affiche le morceau de camembert
     imagefilledarc($img, $centre_x, $k, $cam_largeur, $cam_hauteur, $tab_angle[$i], $tab_angle[$i+1], $color, IMG_ARC_PIE);

    } # for($i=0; $i<$this->dim; $i++)

   } # for($k=120; $k>110; $k--)

  } # if ($mode == 3)


  # on affiche les morceaux "clairs" du camembert (partie commune 2D/3D)
  for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert
 
   # creation de la couleur claire
   $color = imagecolorallocate( $img, $tab_couleurs[$i][0][0], $tab_couleurs[$i][0][1], $tab_couleurs[$i][0][2] ); # R G B
   
   # on affiche le morceau de camembert
   imagefilledarc($img, $centre_x, $centre_y, $cam_largeur, $cam_hauteur, $tab_angle[$i], $tab_angle[$i+1], $color, IMG_ARC_PIE);
   
   #  on affiche la legende
   $x = 235;
   $y = 15 + $i*16;
   imagefilledrectangle($img, $x, $y, $x+9, $y+9, $color); # petit carre de couleur
   imagestring($img, 2, $x+15, $y-2, $this->tabNom[$i]. ' ('.floor(($this->tabVal[$i] * 100) / $this->tot).'%)', $noir); # texte

  } # for($i=0; $i<$this->dim; $i++)

   
  # finalisation de l'image
  
  imagestring( $img, 2, 175, 195, "", $vert); # vous pouvez mettre votre site internet

  header("Content-type: image/png"); # declaration du Header, pour pouvoir afficher l'image
  imagepng($img);     # creation de l'image
  imagedestroy($img); # nettoyage des ressources
 } # fin stat2png


} # fin de la classe camembert
?>



Voila, donc moi j'ai essayé sur la premiere page d'inclure mes include menu head ect..
et de mettre la structur du lancement du camembert entre des

mais si je rajoute ne serait ce qu'un include ca m'affiche une page blanche . Voilou j’espère avoir été clair .

Merci d'avance.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
3
Merci
<?php
echo '';
?>

ou avec des parametres

<?php
echo '';
?>

et dans camemnbert.php

$p1=(int)$_GET['p1'];
$p2=(int)$_GET['p2'];
$p3=(int)$_GET['p3'];
$p4=(int)$_GET['p4'];


Bonne programmation !

Merci cod57 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de cod57
Messages postés
60
Date d'inscription
jeudi 10 mars 2005
Dernière intervention
26 octobre 2011
0
Merci
Chalute,

Et ben tu tiens le bon bout toi on dirait :)

Alors, j'ai pas beacoup de temps pour tout analyser et oui je suis au taff :) mais je vais te donner une piste on se sait jamais.

Essaie regarder le code source de ta page blanche et dit nous ce que tu vois.

Je crois que cela doit être un problème d'entetes.

Quand tu fais l'affichage de ton camenbert il envoit un header à ton serveur et comme des données sont envoyées aussi, j'ai peur que ton programe ne bug.

Fait ce test:

output_buffering=On dans ton php.ini et redemarre ton serveur web et réessaie.

J'espère que celà t'aidera.

Bon courage :)
Commenter la réponse de cs_nemo_1
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
0
Merci
J'ai pensé aussi au header a la fin de la page class camembert.
Alors quand j'ai la page blanche je pense que tu as raison ça bug , parce que j'ai pas de code. J'ai mit le output_buffering=On comme vous me l'avez proposé.
Je pensais sinon récupérer l'image et l’intégrer avec un src mais une fois l'image générer l'url n'as pas changé donc pas possibles .

Voila si tu as une idée ?
pour info tu as le camembert en exécution a cette adresse :
http://www.software-ds.com/PHP/Camembert-2D-3D/demo-camembert.php

J'ai inspecté le code, une fois générer ça crée un lien pour faire un src.

Merci.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer
Messages postés
60
Date d'inscription
jeudi 10 mars 2005
Dernière intervention
26 octobre 2011
0
Merci
Okay...

le code source de ta page blanche est vierge aussi?

Sinon essaie de nous le coller ici aussi cela peux être intéressant.

Aussi essaie dans un terminal d'éxecuter toute tes requetes SQL pour voir si tu n'as pas une erreur quelque part.


sinon vraiment j'ai pas d'autre idées.

Sinon pour le debug:

Separe ton code et test chaque module a part.

Page sans camembert
Camembert simple
Page avec camembert peut etre tu trouveras ta solution.

Bon courage.
Commenter la réponse de cs_nemo_1
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
0
Merci
bonjour

imagestring($img,2,175,195,"",$vert);
j'ai enlevé les espaces et puis ça fonctionne ?


mon test.php

<?php
# Camembert 2D/3D - 03/05/2008
# Auteur : Didier STRAUS (C)2008 www.Software-DS.com
# Description: Cree une image PNG en camembert a partir des donnees fournies.
# Demo en ligne : http://www.software-ds.com/PHP/Camembert-2D-3D/demo-camembert.php

class camembert {
 var $dim;  # dim de position dans le tableau
 var $tabVal; # tableau des valeurs
 var $tabNom; # tableau des noms
 var $tot;    # total des valeurs

### camembert : constructeur / initialisation
 function camembert() {
  $this->dim = 0;
  $this->tot = 0;
  
  $this->tabVal=array();
  $this->tabNom=array();
 } # fin camembert


### add_tab : ajoute une donnee au tableau (valeur + libelle)
 function add_tab($val, $nom) {
  if ($val > 0) {
   $this->tabVal[$this->dim] = $val;
   $this->tabNom[$this->dim] = $nom;
   $this->tot = $this->tot + $val; # calcul du total
   $this->dim++; # MAJ de l'dim
  }
 } # fin add_tab


### trier_tab : trie le tableau par ordre decroissant
 function trier_tab() {
  if ($this->dim > 1) { # tri necessaire ?
  
   for($i=0;$i<$this->dim-1;$i++) {
    $maxi = $this->tabVal[$i];

    for($j=$i+1;$j<$this->dim;$j++) {
     if ($maxi < $this->tabVal[$j]) { # on echange les positions dans le tableau
      $maxi  = $this->tabVal[$j];
      $inter = $this->tabNom[$j];
      
      $this->tabVal[$j] = $this->tabVal[$i];
      $this->tabNom[$j] = $this->tabNom[$i];

      $this->tabVal[$i] = $maxi;
      $this->tabNom[$i] = $inter;      
     }
    } # for j 
   } # for i
  } # if
 } # fin trier_tab


### affiche_tab : affiche les donnees du tableau, utile pour utile Debug
 function affiche_tab() {
  for($i=0; $i<$this->dim; $i++) {
   echo $this->tabNom[$i].' '.$this->tabVal[$i].'
';
  } # for
 } # fin affiche_tab
 

### stat2png : genere une image camembert au format PNG
 
 
 
  function stat2png($mode, $hauteur_effet_3D) {
 
  //return 'ok';
 
  $width       = 370; # largeur de l'image
  $height      = 220; # hauteur de l'image
  $centre_x    = 110; # poisition X du centre du camembert
  $centre_y    = 110; # poisition Y du centre du camembert
  $cam_largeur = 200; # largeur du camembert
  $cam_hauteur = 160; # hauteur du camembert

  # declaration/initialisation de l'image
  $img = imagecreatetruecolor($width, $height) or die("Probleme : Chargement de la lib GD impossible");

  # declaration des couleurs
  $noir  = imagecolorallocate($img,0,0,0);
  $vert  = imagecolorallocate($img,90,160,90);
  $blanc = imagecolorallocate($img,255,255,255);

  ImageFill( $img, 0, 0, $blanc ); # couleur de fond de l'image (blanc)
  
  if ($mode<>2 && $mode<>3) { # controle du mode
   $mode = 2;
  }
  
  if ($mode == 2) {
   $cam_largeur = $cam_hauteur; # pour la 2D on veut un cercle et pas une ellipse
  }
  
  $tot_angle = -90; # on commence a afficher les donnees a partir de midi

  # variables pour generer les couleurs du camembert
  $v2 = 185;
  $v1 = 75;
  $c  = 0;
  
  for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert, on calcul la couleur et les angles
   
   # on genere une couleur differente a chaque iteration et on la memorise
   if ($c==0) {
    $tab_couleurs[$i][0][0] = $v1; # R
    $tab_couleurs[$i][0][1] = $v2; # G
    $tab_couleurs[$i][0][2] = $v2; # B
   }
   else if ($c==1) {
    $tab_couleurs[$i][0][0] = $v2; # R
    $tab_couleurs[$i][0][1] = $v1; # G
    $tab_couleurs[$i][0][2] = $v2; # B
   }
   else if ($c==2) {
    $tab_couleurs[$i][0][0] = $v2; # R
    $tab_couleurs[$i][0][1] = $v2; # G
    $tab_couleurs[$i][0][2] = $v1; # B
   }
   
   $c++;
   # calcul complexe pour changer de couleur
   if ($c==3) {
    $c   = 0;
    $v1 += 60;
    $v2 -= 40;
    
if (abs($v1-$v2) < 40) {
     $v1 += 30;
     $v2 -= 30;
    } # if
   } # if

   # on assombrit la couleur et on la memorise
   $dark = 35; # modifier cette valeur pour modifier l'assombrissement des couleurs

   for($k=0; $k<3; $k++) { # R G B
 
    if ($tab_couleurs[$i][0][$k] - $dark > 0)
     $tab_couleurs[$i][1][$k] = $tab_couleurs[$i][0][$k] - $dark;
    else
     $tab_couleurs[$i][1][$k] = 0;

   } # for($k=0; k<3; k++)

   # on calcul et memorise l'angle
   $tab_angle[$i] = $tot_angle;
   $angle = ($this->tabVal[$i] * 360) / $this->tot;
   $tot_angle += $angle;

  } # for($i=0; $i<$this->dim; $i++)

  $tab_angle[$this->dim] = $tot_angle; # on n'oublie pas de memoriser le dernier angle ;)


  # on peut commencer a afficher les morceaux de camemberts
   
  if ($mode == 3) { # Effet 3D
      
   for($k=$centre_y + $hauteur_effet_3D; $k > $centre_y; $k--) { # pour avoir un effet 3D de 10 pixels

    for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert
         
     # creation de la couleur sombre
     $color = imagecolorallocate( $img, $tab_couleurs[$i][1][0], $tab_couleurs[$i][1][1], $tab_couleurs[$i][1][2] ); # R G B
       
 # on affiche le morceau de camembert
     imagefilledarc($img, $centre_x, $k, $cam_largeur, $cam_hauteur, $tab_angle[$i], $tab_angle[$i+1], $color, IMG_ARC_PIE);

    } # for($i=0; $i<$this->dim; $i++)

   } # for($k=120; $k>110; $k--)

  } # if ($mode == 3)


  # on affiche les morceaux "clairs" du camembert (partie commune 2D/3D)
  for($i=0; $i<$this->dim; $i++) { # pour chaque morceau du camembert
 
   # creation de la couleur claire
   $color = imagecolorallocate( $img, $tab_couleurs[$i][0][0], $tab_couleurs[$i][0][1], $tab_couleurs[$i][0][2] ); # R G B
   
   # on affiche le morceau de camembert
   imagefilledarc($img, $centre_x, $centre_y, $cam_largeur, $cam_hauteur, $tab_angle[$i], $tab_angle[$i+1], $color, IMG_ARC_PIE);
   
   #  on affiche la legende
   $x = 235;
   $y = 15 + $i*16;
   imagefilledrectangle($img, $x, $y, $x+9, $y+9, $color); # petit carre de couleur
   imagestring($img, 2, $x+15, $y-2, $this->tabNom[$i]. ' ('.floor(($this->tabVal[$i] * 100) / $this->tot).'%)', $noir); # texte

  } # for($i=0; $i<$this->dim; $i++)

   
  # finalisation de l'image
  
  imagestring($img,2,175,195,"",$vert); # vous pouvez mettre votre site internet

 

  header("Content-type: image/png"); # declaration du Header, pour pouvoir afficher l'image
  imagepng($img);     # creation de l'image
  imagedestroy($img); # nettoyage des ressources

  
 } # fin stat2png


} # fin de la classe camembert
//session_start();
//include('base.php');


/*
Base();

$sql = mysql_query('SELECT * FROM tickets WHERE catTicket="messagerie"');
$messagerie = mysql_num_rows($sql);

$sql2 = mysql_query('SELECT * FROM tickets WHERE catTicket="reseau"');
$reseau = mysql_num_rows($sql2);

$sql3 = mysql_query('SELECT * FROM tickets WHERE catTicket="materiel"');
$materiel = mysql_num_rows($sql3);

$sql4 = mysql_query('SELECT * FROM tickets WHERE catTicket="logiciel"');
$logiciel = mysql_num_rows($sql4);

mysql_close();

*/

 //require("camembert.php"); # on charge la classe camembert
  
 $camembert = new camembert(); # initialisation

 # on peut utiliser une requete SQL pour alimenter le tableau
 $camembert->add_tab( $messagerie=15, "Messagerie");
 $camembert->add_tab( $reseau=15, "Reseau");
 $camembert->add_tab( $materiel=30, "Materiel");
 $camembert->add_tab( $logiciel=40, "Logiciel");


 $camembert->trier_tab(); # Facultatif, les donnees sont triees dans l'ordre decroissant
 # $camembert->affiche_tab(); # Debug
 
 # on genere l'image au format PNG
 //header("Content-type: image/png");
    $camembert->stat2png(3,15);   
    //header("Content-type: image/png"); # declaration du Header, pour pouvoir afficher l'image
    //imagepng($img);     # creation de l'image
    //imagedestroy($img); # nettoyage des ressources
    
    ?>


Bonne programmation !
Commenter la réponse de cod57
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
0
Merci
Ben toute les page sont celle que j'ai mise en haut.
Le camembert seul avec les données récupérer de la BDD ça marche, c'est quand j’insère le design html que ca marche plus. sinon comment exécuter ce camembert en arrivant sur une page x.php et y afficher le dit camembert ?

faut-il pas changer quelques chose ici pour l'afficher sur la page que je veux ?
header("Content-type: image/png"); # declaration du Header, pour pouvoir afficher l'image

Merci.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
0
Merci
Salut cod57,

J'ai pas de soucis pour le fonctionnement du camembert.
En faite le soucis c'est que je n'arrive pas a récupérer l'image qu'il génère pour la mettre sur une autre page qui est structurer en html et css.



Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Dernière intervention
21 juin 2015
0
Merci
re cod57 .

Ca marche ! En faite c'est bon , mais pas avec camembert, parce que y'a que la classe dessus, mais avec l'autre ça marche a condition de ne mettre aucun include dessus . Merci a toi et nemo pour votre aide, je commençais vraiment a devenir maboule.


Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.