Affichier une varriable sur une image

Eléphant du PHP | 109 Messages

02 juil. 2009, 21:17

Bonjour à toute et à tous !

Après lecture de beaucoup de tutos, je me suis aperçu qu'aucun ne traitait mon problème.
C'est pourquoi je me retourne côté forum :)

Comme le dit le titre, j'aimerai générer une image où est présent une chaine de caractères qui est en fait une variable.

J'expose :
-je me connecte à ma base de donnée
-je récupère ma variable
-je créer l'image avec la variable dessus
-j'affiche l'image

Il est évident que j'ai fait quelques essais avant de poster sur le forum. Voici le dernier que j'ai fait (sûrement faux :roll: ) :
<?php
header ("Content-type: image/jpg");

$ign = $_POST['ign'];

$connect = mysql_connect ( '', '', '' ) or die("Erreur de connexion au serveur");

mysql_select_db('', $connect) or die("Erreur de connexion à la base");

$donnee = mysql_query("SELECT * FROM dragotaka_ranking WHERE ign='$ign'");



$image = imagecreate(200,50);



$orange = imagecolorallocate($image, 255, 128, 0); 

$noir = imagecolorallocate($image, 0, 0, 0);


imagestring($image, 4, 35, 15, "donnee['ign']", $noir);
imagecolortransparent($image, $orange);

imagejpg($image);
?>
Sachant qu'il n'y a aucune erreur au niveau de mes identifiants de base, que ma librairie GD est activée correctement et que php ne me génère aucune erreurs, voici ce que je reçois :
Image

PS : je suis parfait débutant niveau génération d'image en PHP, donc ne vous étonné pas si il persiste de simples erreurs dans mon code.
Modifié en dernier par SinBert le 04 juil. 2009, 19:26, modifié 1 fois.

ViPHP
AB
ViPHP | 5818 Messages

02 juil. 2009, 23:37

Tu exécute ta requête mais tu ne récupère pas de variable... Il faudrait utiliser mysql_fetch_assoc() ou équivalent pour le faire.

Eléphant du PHP | 109 Messages

04 juil. 2009, 18:58

Salut!

J'ai essayer deux trois trucs, j'ai fait ce que tu m'as dit : sans résultats encore une fois.
J'ai corrigé toutes les erreurs que PHP me générait, mais il me retourne toujours la même image que la dernière fois.

Voici ce qu'est devenu mon code :
<?php
header ("Content-type: image/jpg");

$ign = $_GET['ign'];

mysql_real_escape_string($ign);

$connect = mysql_connect ( '', '', '' ) or die("Erreur de connexion au serveur");

mysql_select_db('', $connect) or die("Erreur de connexion à la base");

$donnee = mysql_query("SELECT * FROM dragotaka_ranking WHERE ign='$ign'");

if (mysql_num_rows($donnee) == 0) {
   echo "Aucune ligne trouvée, rien à afficher.";
}

else{
while ($row = mysql_fetch_assoc($donnee)) {

$image = imagecreate(200,50);



$orange = imagecolorallocate($image, 255, 128, 0); 
$
$blanc = imagecolorallocate($image, 255, 255, 255);

imagestring($image, 4, 35, 15, "donnee['ign']", $noir);
imagecolortransparent($image, $orange);

imagejpg($image);

mysql_free_result($donnee);

}
}
?>
PS : J'ai changé le POST en GET, mais la source de l'erreur n'est pas là ;)

ViPHP
ViPHP | 2291 Messages

07 juil. 2009, 19:12

Salut,
Je pense que cette ligne pose problème.
$image, 4, 35, 15, "donnee['ign']", $noir
tu a oublier le $ pour la variable donnee['ign'] , de plus la variable devrais être $row et pas $donnee

Proposition:
$image, 4, 35, 15, $row['ign'], $noir
:wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.