Script Skin Minecraft

Punk
Invité n'ayant pas de compte PHPfrance

04 avr. 2012, 20:25

Bonjour,
Je suis en train de modifier mon site qui tourne autour du monde de Minecraft.
Pour ce qui ne savent pas, les personnes ayant des compte Minecraft Prenium peuvent avoir un Skin sur leurs joueurs.
On peut retrouver les skins de tout les joueur a ce lien :
http://s3.amazonaws.com/MinecraftSkins/pseudo.png
Par exemple le mien :
http://s3.amazonaws.com/MinecraftSkins/Zepunk.png
Donc voila, J'ai un code qui permet d'allez le chercher lorsque le joueur entre son nom mais il n'est pas fonctionnel.
Lorsque je charge la page, il me met le skin de base, je tape mon pseudo et je le valide et il me met une erreur.
Voici le site avec le script : zepunk.webege.com
Voici les codes :

skin.php
// Fonction de vérification d'existance de l'image
function is404($filename)
{
    $handle = curl_init($filename);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($handle);
    $httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
    curl_close($handle);

    if ($httpCode >= 200 && $httpCode < 300)
	{
		return false;
    }
	else
	{
		return true;
    }
}

// Variable d'environnement _GET
$pseudo = trim(@$_GET['pseudo']);
$size = trim(@$_GET['size']);

// Pseudo du joueur à utiliser s'il n'est pas mentionné
if(empty($pseudo))
{
	// Skin Minecraft par demandé
	$pseudo = 'char.png';
}

if(!empty($_GET['playername']))
{
     echo '<img src="fichier_image_skin.php?joueur=' . $_GET['playername'] . '" />';
}
// Taille de l'image à utiliser si elle n'est pas mentionnée
if(empty($size))
{
	// Taille du skin par défaut à 64 pixels
	$size = '64';
}

// Skin Minecraft demandé
$filename = 'http://s3.amazonaws.com/MinecraftSkins/' . $pseudo . '.png';

// Exécution de la fonction "is404" pour vérifier si le fichier image existe
if(is404($filename) || empty($pseudo))
{
	// Skin Minecraft par défaut
	$filename = 'http://s3.amazonaws.com/MinecraftSkins/char.png';
}

// Génération de l'image
header('Content-type: image/png');

$img_1 = imagecreatetruecolor($size, $size);
$img_2 = imagecreatefrompng($filename);
imagecopyresampled($img_1, $img_2, 0, 0, 8, 8, $size, $size, 8, 8);

imagepng($img_1);

?>

Index.html
<form action="skin.php" method="get">
<input name="playername" type="text" value="pirmax" /><br />
<input name="go" type="submit" value="Valider" />
</form>

<?php
if(!empty($_GET['playername']))
{
     echo '<img src="fichier_image_skin.php?joueur=' . $_GET['playername'] . '" />';
}
?>

<img src="skin.php" width="100" height="100" border="0" />

Je ne suis pas sur davoir dans ' index.html ' avoir bien placer le PHP, je ne savais pas trés bien ou le mettre...
Merci

ViPHP
xTG
ViPHP | 7331 Messages

04 avr. 2012, 20:30

Lorsque je charge la page, il me met le skin de base, je tape mon pseudo et je le valide et il me met une erreur.
Il ne me semble pas avoir trouvé dans ton message le message d'erreur en question. 8-|

Punk
Invité n'ayant pas de compte PHPfrance

04 avr. 2012, 20:39

Sous firefox sa m'en mettais une, sous chrome une image inconnue...

Punk
Invité n'ayant pas de compte PHPfrance

04 avr. 2012, 20:48

Le message d'erreur sous FireFox :

Code : Tout sélectionner

L'image : http://zepunk.webege.com/skin.php?playername=Zepunk&goValider" ne peut pas être car elle contient des erreurs.
On dirait qu'il va chercher l'image au mauvais endroit

ViPHP
xTG
ViPHP | 7331 Messages

04 avr. 2012, 21:15

Non, surtout qu'il doit y avoir des erreurs PHP d'affichées et donc qui parasitent le code de l'image.
Commentes le header() et la fonction imagepng() et accèdes au fichier en fournissant un paramètre correct.
Tu y accéderas comme un script PHP qui retourne du HTML et tu pourras voir les erreurs générées.

Punk
Invité n'ayant pas de compte PHPfrance

04 avr. 2012, 21:25

C'est a dire ? .. Désolé je suis vraiment débutant.

Punk
Invité n'ayant pas de compte PHPfrance

04 avr. 2012, 22:42

Un exemple de page avec le script

http://www.milleniumcraft.fr/subscribe.html

ViPHP
xTG
ViPHP | 7331 Messages

05 avr. 2012, 07:17

Tu mets en commentaire les deux fonctions que je t'ai cité. (cela désactivera l'interprétation en tant qu'image)
Puis tu accèdes à l'URL http://zepunk.webege.com/skin.php?playe ... &goValider et tu devrais voir des erreurs PHP.
Cela te guidera sur ce qui ne va pas dans le script.

ViPHP
ViPHP | 2577 Messages

05 avr. 2012, 08:56

Il y a un écart entre le src de la balise : <img src="fichier_image_skin.php?joueur=' . $_GET['playername'] . '" />
et le message d'erreur : L'image : http://zepunk.webege.com/skin.php?playe ... &goValider" ne peut pas être car elle contient des erreurs.

Quand on regarde l'image (adresse du message), on voit :
<img src="fichier_image_skin.php?joueur=Zepunk" />
et
<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
Si tu enlèves ca de ton script, ca peut marcher. A moins que ce soit un ajout de ton hébergeur.

Punk
Invité n'ayant pas de compte PHPfrance

05 avr. 2012, 18:08

Toujours pas... Sa ne change rien

ViPHP
ViPHP | 2577 Messages

05 avr. 2012, 18:15

qu'est ce qui ne change rien ?

ViPHP
xTG
ViPHP | 7331 Messages

05 avr. 2012, 18:15

Toujours pas... Sa ne change rien
As-tu essayé ce que je te t'ai dit ? Et surtout regardé la source générée (et pas seulement ce qui s'affiche).

Punk
Invité n'ayant pas de compte PHPfrance

05 avr. 2012, 18:22

Je ne voit pas trés bien quel ligne supprimer sur le code..

Punk
Invité n'ayant pas de compte PHPfrance

05 avr. 2012, 18:26


ViPHP
xTG
ViPHP | 7331 Messages

05 avr. 2012, 21:26

Je t'ai nommée les deux fonctions dans mon message (elles n'apparaissent d'une fois, donc facile de les trouver). Et je n'ai pas parlé de suppression mais de mise en commentaire.