Fonction : Enregistrer une image dynamique

Répondre
Morgoth
le 07/08/2008 à 19:01
Morgoth
Bonjour,
à l'aide des modules de ce site, j'ai pu réussir a comprendre deux/trois éléments de PHP me permettant de proposer a des utilisateurs extérieur un générateur de tactique de football (très basique pour le moment).

Mais il me manque une fonction essentielle. Il faut que l'image crée puisse être réutilisé par l'utilisateur en la mettant sur un forum par exemple.
Je souhaiterais donc que l'image crée soit enregistré (temporairement) sur le serveur et qu'un lien de cette image s'affiche lors de la création.

Voici le code des deux pages.

La page de formulaire :
<html>
<head>
<title>Notre page de test</title>
</head>

<body>
Sélectionner l'intensité des différentes teintes :<br />
<form action="./mon_image.php" method="post">
1 - Gardien de But : <input type="text" name="Position1"><br />
2 - Défenseur latéral (D) : <input type="text" name="Position2"><br />
3 - Défenseur latéral (G) : <input type="text" name="Position3"><br />
4 - Défenseur Central (G) ou Libéro : <input type="text" name="Position4"><br />
5 - Défenseur central (D) ou Stoppeur : <input type="text" name="Position5"><br />
6 - Milieu défensif : <input type="text" name="Position6"><br />
7 - Milieu relayeur (D) : <input type="text" name="Position7"><br />
8 - Milieu relayeur (G) : <input type="text" name="Position8"><br />
9 - Avant-centre : <input type="text" name="Position9"><br />
10 - Meneur de jeu : <input type="text" name="Position10"><br />
11 - Attaquant de complément : <input type="text" name="Position11"><br />


<input type="submit" value="Voir">
</form>
</body>

</html>


La page de création de l'image :
<?php

if (isset($_POST['Position1']) && isset($_POST['Position2']) && isset($_POST['Position3']) && isset($_POST['Position4']) && isset($_POST['Position5']) && isset($_POST['Position6'])
&& isset($_POST['Position7']) && isset($_POST['Position8']) && isset($_POST['Position9']) && isset($_POST['Position10']) && isset($_POST['Position11'])) {

header ("Content-type: image/png");
$image = imagecreatefrompng("442losange.png");

imagestring($image, 3, 25, 199, $_POST['Position1'], $blanc);
imagestring($image, 3, 130, 357, $_POST['Position2'], $blanc);
imagestring($image, 3, 130, 55, $_POST['Position3'], $blanc);
imagestring($image, 3, 130, 156, $_POST['Position4'], $blanc);
imagestring($image, 3, 130, 255, $_POST['Position5'], $blanc);
imagestring($image, 3, 232, 206, $_POST['Position6'], $blanc);
imagestring($image, 3, 317, 103, $_POST['Position7'], $blanc);
imagestring($image, 3, 317, 303, $_POST['Position8'], $blanc);
imagestring($image, 3, 511, 256, $_POST['Position9'], $blanc);
imagestring($image, 3, 406, 206, $_POST['Position10'], $blanc);
imagestring($image, 3, 511, 156, $_POST['Position11'], $blanc);


$couleur_fond = ImageColorAllocate ($image, 255, 0, 0);


ImagePng ($image);

}

else {
echo 'Les variables du formulaire ne sont pas déclarées.';
}

?>


Je vous remercie d'avance pour votre aide.
LA GLOBULE
le 07/08/2008 à 22:14
LA GLOBULE
Ce que tu peux faire, c'est stocker l'image en base de données (dans un champ BLOB) en l'associant à un id.

Ensuite, tu fournirais une URL du genre : http://www.site.com/image.php?id=45

Et dans ce fichier image.php, tu selectionnerais en base de données l'image 45, et tu l'afficherais avec le header qui va bien (en fonction de ton type d'image, apparemment du png).

Tu peux aussi pousser le principe en générant des id qui n'ont rien à voir, un peu comme des md5 pour éviter que des gens "calculent" tes id et voient toutes tes images (cela n'empêchera en rien de scripter ta base, mais ca décourage. Tu peux aussi bannir les ip qui font trop de requêtes d'un coup, etc.).
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours