[RESOLU] Génération d'image

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 : [RESOLU] Génération d'image

Re: Génération d'image

par leo45vl » 06 août 2012, 17:59

Bon trouvé!
Des espaces dans le core.php :/.

C'est par la: http://mineserver.ze.cx/statut/statut.php?id=162

Re: Génération d'image

par Ryle » 05 août 2012, 21:12

De la même manière, que pour ton script principal, il ne faut rien envoyer d'autre au navigateur que l'image, donc ni espace, ni retour à la ligne, ni quoi que ce soit qui serait placé en dehors des balises <?php et ?>

Il te faut donc vérifier que tes scripts core.php et minequery.class.php commencent tous deux par un <?php dès la première ligne (sans espace, sans ligne vide, ... ou autre avant). Qu'il n'y a pas de "trou" comme dans ton script précédent (du code entre un ?> et un <?php). Qu'ils ne font ni echo, ni print, ni chépakoi qui ajouterai des choses dans l'image que tu essayes de générer :)

Re: Génération d'image

par leo45vl » 05 août 2012, 19:29

Non c'est une erreur de copier/coller^^

Ha non!!
C'est sa qui bug:

require "./core.php";
require "./minequery.class.php";

Re: Génération d'image

par Ryle » 05 août 2012, 18:06

Euh... y a plus non plus de "<?php" au début du fichier dans ton dernier code... c'est une erreur de copier coller ? ou c'est une rage sanguinaire qui t'a poussé à la suppression sauvage et barbare de toutes les balises php ?

En supposant que ce soit le premier cas, que se passe-t-il si tu commence simplement par générer et afficher ton image back.png toute seule ? (en gros tu fais le imagecreatefrompng puis juste après le imagepng).
Si ça fonctionne tu rajoutes les autres actions une par une et tu regardes laquelle fait planter. Et si ça fonctionne pas.. euh.. faudra vérifier ton image :)

Re: Génération d'image

par leo45vl » 05 août 2012, 17:52

Voila,
Il n'a en plus et sa marche pas^^ soit je suis aveule ou soit...
header ("Content-type: image/png");
$id = $_GET['id'];
require "./core.php";
require "./minequery.class.php";
  $sql="SELECT * FROM server WHERE id=$id";
  $req = mysql_query($sql) or die('Erreur SQL! <br/>'.$sql.'<br/>'.mysql_error());
if (empty($data{'port'})) {
  $finalport = 25565;
}
if (isset($data{'port'})) {
  $finalport = $data{'port'};
}
$Server = new MinecraftStatus(''.$data{'ip'}.'',''.$finalport.'' );
$joueur = $Server->CurPlayers;
$player2 =$Server->MaxPlayers;
$image = imagecreatefrompng("back.png");
$blanc = imagecolorallocate($image, 225, 225, 225);
$jaune = imagecolorallocate($image, 225, 225, 0);
imagestring($image, 20, 60, 15, $data{'nom'}, $jaune);
imagestring($image, 20, 60, 38, "Joueur en ligne:", $blanc);
imagestring($image, 20, 205, 38, $joueur, $blanc);
imagepng($image);
?>

Re: Génération d'image

par Ryle » 05 août 2012, 09:54

Tu as encore un retour à la ligne entre ?> et <?php ... celui-ci est donc envoyé également au navigateur qui du coup ne sait plus interpréter l'image.

Il faut donc absolument coller les deux balises
<?php
header ("Content-type: image/png");
?><?php
$id = $_GET['id'];
...
Soit encore mieux, ne pas les fermer à cet endroit, puisque cela n'apporte rien :)
<?php
header ("Content-type: image/png");

$id = $_GET['id'];
...

Re: Génération d'image

par leo45vl » 05 août 2012, 05:07

Voila:
<?php
header ("Content-type: image/png");
?>
<?php
$id = $_GET['id'];
require "./core.php";
require "./minequery.class.php";
  $sql="SELECT * FROM server WHERE id=$id";
  $req = mysql_query($sql) or die('Erreur SQL! <br/>'.$sql.'<br/>'.mysql_error());
if (empty($data{'port'})) {
  $finalport = 25565;
}
if (isset($data{'port'})) {
  $finalport = $data{'port'};
}
$Server = new MinecraftStatus(''.$data{'ip'}.'',''.$finalport.'' );
$joueur = $Server->CurPlayers;
$player2 =$Server->MaxPlayers;
?>
<?php
$image = imagecreatefrompng("back.png");
$blanc = imagecolorallocate($image, 225, 225, 225);
$jaune = imagecolorallocate($image, 225, 225, 0);
imagestring($image, 20, 60, 15, $data{'nom'}, $jaune);
imagestring($image, 20, 60, 38, "Joueur en ligne:", $blanc);
imagestring($image, 20, 205, 38, $joueur, $blanc);
imagepng($image);

Re: Génération d'image

par leo45vl » 05 août 2012, 05:07

Voila:
<?php
header ("Content-type: image/png");
?>
<?php
$id = $_GET['id'];
require "./core.php";
require "./minequery.class.php";
  $sql="SELECT * FROM server WHERE id=$id";
  $req = mysql_query($sql) or die('Erreur SQL! <br/>'.$sql.'<br/>'.mysql_error());
if (empty($data{'port'})) {
  $finalport = 25565;
}
if (isset($data{'port'})) {
  $finalport = $data{'port'};
}
$Server = new MinecraftStatus(''.$data{'ip'}.'',''.$finalport.'' );
$joueur = $Server->CurPlayers;
$player2 =$Server->MaxPlayers;
?>
<?php
$image = imagecreatefrompng("back.png");
$blanc = imagecolorallocate($image, 225, 225, 225);
$jaune = imagecolorallocate($image, 225, 225, 0);
imagestring($image, 20, 60, 15, $data{'nom'}, $jaune);
imagestring($image, 20, 60, 38, "Joueur en ligne:", $blanc);
imagestring($image, 20, 205, 38, $joueur, $blanc);
imagepng($image);

Re: Génération d'image

par xTG » 04 août 2012, 09:18

Montres nous ton code modifié.

Re: Génération d'image

par leo45vl » 04 août 2012, 04:50

J'ai essayer de tout supprimer les espaces.
Mais sa ne marche pas.
Quel truc il faut supprimer?

Re: Génération d'image

par xTG » 03 août 2012, 06:55

Supprimes les espaces et retour à la ligne entre les ?> et <? Car c'est envoyé aussi et donc c'est rajouté à l'image ;)

Re: Génération d'image

par leo45vl » 02 août 2012, 21:15

J'ai fait ce que tu ma dit,
il n'a aucune erreur et sa me donne sa:

Code : Tout sélectionner

‰PNG IHDR@@ä…9IYIDATxœíݽnÚPÆñLjfà ºFªš¹À[àš1í½´×P±u©TuÈ ‘¡C” ±&ªNw8Ä=õWlð±yñÿ·ÄûÅò“÷“(Žc=‹¢HŽ•ŸVgÐI1t\ïN§ ŒË©ß‡éÀ€a»E/½°b6›é¹ÓÃ†EOÌçó6ëPb<'Ûn¾ìÖÃt`À°œLK¥ß‡:0`#À€a0Œ†`À0F€Ã0`#À€a0Œ†`À0F€Ã0`XáßÄ:ÜrµJ¶ßœŸ‡;Ð[t`À° ØõÞÁ$é›$-¯W¢M£†\ëâ³$]¼—¤kþï!Ð<:0`XìÖºËèJÒW]IúÀê€p üé㥤/?î$éO¸ãýE؁ƒ¤³³3IR\þÅö@؁G£‘¤ív+Iâ}` yt`À°€x½^KÚl6’¤WáôVÈ¥ïææ&ÙžL&Õq’S‘{ܳ=?E')àúöáéöá)Š¢( µžL&\”硟lw`TD¼OUÀ¿{ûZÒÏå¯p‡(’;µÎN#SÔ•ÚH <¤Âòùp]E{ókHŽ›ûºJf+dºÞ¦¼\@îJ]¦ Žò¿²ÖÀò!.EµŠ¯RgI µÊx±øÔ‚ àÅýãâþq³Ù<߈nCêÛÅì7*á|±ó¼x¬½Ë8œ_|nu‹Gh¬ÿi3*¦TyñD·Mü}ñ[’4 ±s7ÁkvŸm^y_ån‰»ßûp„á5p•IÿlîS¹£Ü¶?¶Á¥]ɱڔZWÌd•â;y9½µ{‡v:&ÍçóŽŠ©§è© VeÙQ©ð§.;`ѨÔö(Þ?VvoÕ÷_ô’³Y*z½Õ˨r¢*–ZÆãq²=›Íd:À8Ä!ß,êîMɘ›X=•]«¡ÔÝ6àþ"i'ÀðM,0,g íÊÜÊŽ‡ûÊGÆq,ÉýÊ®ÿfRQâ:0`Xä:ðî“Lpl܏p¸äҁÃþëÀ»‡‚ý +‡ó3Kû¥žœ *ÀIEND®B`‚

Re: Génération d'image

par Ryle » 02 août 2012, 11:00

Ben ça dépend si tu aimes les croix rouges ou pas ;)

Met en commentaire ta ligne header ("Content-type: image/png");
Ton code ne fonctionnera plus, mais quand tu appelleras l'image via le navigateur, ceci aura pour effet de te montrer les éventuels messages d'erreurs générés par php au lieu de mettre une croix rouge.

Ca sera plus facile pour les résoudre (genre s'il te dit que la librairie gd n'est pas active, qu'il ne trouve pas le fichier, etc. c'est quand même plus facile à résoudre que quand tu ne sais pas ce qui ne va pas).

Et une fois qu'il n'y aura plus d'erreur ou d'avertissement et que tu auras une chaine de texte incompréhensible, tu pourras remettre ton header et vérifier que l'image correspond bien à ce que tu attends :)

Re: Génération d'image

par leo45vl » 02 août 2012, 04:58

Salut,


require "./core.php"; Core c'est pour les adresse de connexion a la bdd.
require "./minequery.class.php"; C'est pour récupérer des informations sur un serveur MineCraft

Le but est de générer une image qui a le nombre de joueur connecté(ex: 17/100)
Et le nom du serveur.

J'ai tester mon script de génération d'image avec des variables dans les liens, sa marche mais quand je met tout sa en final sa donne sa: http://www.mineserver.ze.cx/statut/statut.php?id=162 qui n'est pas une très belle image^^


Merci,
William

Re: Génération d'image

par Ryle » 02 août 2012, 00:29

Et on peut éventuellement savoir ce que ça fait ? ce que ça devrait faire ? un message d'erreur ?
Si tu commentes le header, as-tu vérifié que tes variables retournent bien les résultats attendus ?