Générateur de signature dynamique par user

carasco
Invité n'ayant pas de compte PHPfrance

03 mai 2011, 14:03

Bonjour,

Je suis en train de construire une base de données d'un jeu de rôle.
Sur mon site chaque utilisateur peux créer son personnage en choisissant , sa race, sa classe, son niveau et autres (Table personnage). Ensuite, il peut créer sa propre signature dynamique en choisissant une image et en sélectionnant les personnages qu'il voudrait y faire figurer (table signature avec adresse image, et les persos en données liés ). Le truc c'est que j'arrive à créer la signature sur le coup mais je ne sais pas comment la sauvegarder pour chaque utilisateur, en même temps qu'elle se mette à jour si l'utilisateur change une information de son personnage.

Pourriez vous m'aider s'il vous plait? Comment faire cela?

Merci d'avance pour vos réponses ;)

Ouleeve
Invité n'ayant pas de compte PHPfrance

06 mai 2011, 15:31

Bonjour, je trouve ce sujet assez intéressant et j'aimerais connaitre aussi la réponse à cette problématique car je vais bientôt me pencher sur ce genre de sujet.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 mai 2011, 16:48

salut,

tous dépend du fonctionnement de ton jeux mais sur le principe, si tu souhaite sauvegarder le fichier (histoire de ne pas pénaliser le serveur en générant 400000 images dynamique) tu peut le faire en utilisant le second paramètre de fonction imagex (par exemple pour imagepng imagepng($ressource,'nomdufichier.png');).

Le plus simple étant d'utiliser la clef primaire de l'utilisateur pour le nom (si la clef primaire de la table de joueur est 412 le fichier sera 412.png). Cela permet d'afficher le fichier rapidement par exemple echo '<img src="signatures/'.$idJoueur.'.png" />';

Ensuite pour la re-génération, cela dépend de ce que tu veux mettre dessus et si tu souhaite une action spécifique ou pas (dans ce cas un bouton / lien vers un script est le tour est joué). Si tu souhaite de cela soit automatique (par exemple en cas de changement de niveau ?) il faut inclure la génération de l'image dans le traitement de l'événement.


@+
Il en faut peu pour être heureux ......

carasco
Invité n'ayant pas de compte PHPfrance

09 mai 2011, 17:05

Bonjour,

Tout d'abord merci pour le soutien et merci pour la réponse ;)

C'est déjà beaucoup plus clair dans mon esprit grâce à tes explications, je vais essayer de mettre tout ca en place.

Merci encore pou tes explications ;)

carasco
Invité n'ayant pas de compte PHPfrance

11 mai 2011, 17:15

Bonjour,

j'ai donc commencé mes script par contre je suis bloqué à un endroit. j'utilise de l'ajax pour l'affichage de l'image mais je ne sais pas comment passer l'image à mon code JS.

Voic le code exemple que j'utilise :
header("Content-type: image/png");
$image = imagecreatefrompng("sig.png");
$image2 = imagecreatefromjpeg("logo.jpg");
//imagecolorallocate($image, R, G, B) in HEX values
$font_black = imagecolorallocate($image, 2, 1, 8);
$font_blue = imagecolorallocate($image, 25, 0, 255);
//($image, fontsize, rightindent, downindent, data, txtcolour)
imagestring($image, 6, 40, 6, "texteaaffciher", $font_black);
imagecopyresized($image, $image2, 10, 4, 0, 0, 25, 25, 46, 45);
imagepng($image,'http://www.forsaken-world.fr/nomdufichier.png');
echo $image;
Grâce a un alert() dans mon js j'ai constaté que le echo me renvoyait : Resource id #135

Cooment puis je envoyer mon image à mon js, s'il vous plait?

Mammouth du PHP | 672 Messages

12 mai 2011, 13:25

Bonjour,

j'ai donc commencé mes script par contre je suis bloqué à un endroit. j'utilise de l'ajax pour l'affichage de l'image mais je ne sais pas comment passer l'image à mon code JS.
Bonjour.

Il ne faut pas passer l'image à JS.
Il faut passer le code HTML qui va bien :
<img src="nom de l'image.ext" alt="un message" />
Donc PHP doit retourner ce texte (et pas une image)...

carasco
Invité n'ayant pas de compte PHPfrance

12 mai 2011, 13:47

Merci pour ta réponse.

En fait ce qu'il me fallait c'est envoyer l'adresse de l'image qui est enregistré.

Merci encore pour ton aide ;)