Page 1 sur 1

Image GD et php

Posté : 15 févr. 2006, 19:06
par riecola
Bonjour tout le monde.
Voilà mon problème : mon utilisateur selectionne une image et un texte au choix dans un formulaire ensuite une page s'ouvre et affiche les 2 en GD. Mais mon code me pose problème, mis ainsi il ne s'affiche que l'image avec le texte en gd mais pas le reste de mes variables!!! Pourquoi??? Help

Code : Tout sélectionner

<?php $nom_image = $_POST["image"]; $texte = $_POST["texte"]; header("Content-type: image/jpeg"); $image = imagecreatefromjpeg($nom_image); $blanc = imagecolorallocate($image, 0, 0, 0); imagestring($image, 5, 150, 150,$texte, $blanc); imagejpeg($image); ?> <html> <body> <?php $var1 = $_POST["expediteur"]; $var2 = $_POST["destinataire"]; echo '<center><strong><h1>Prévisualisation de votre carte</h1></strong></center>'; echo "<br>","<hr>"; echo "<center>"."<b>"."Bonjour ".$var2.", ".$var1." vous envoie cette carte "."<BR>"."</b>"."</center>"; echo "<BR>"; ?> <img src="monblogA.php"/> </body> </html>

Alors j'ai essayé de mettre tout ce qui est dans balise html en première place mais là probleme encore pire : J'ai bien "Prévisualition etc" mais j'ai une erreur ligne au niveau du header('content') et après plein de symboles bizarres....
Ouin bouh snif...
J'ai l'impression d'avoir retourner le code dans tous les sens, mettre du php, du html, l'un dans l'autre. Et toujours soit j'ai que l'image soit le début mais pas l'image et des lignes bizarres...
Aidez moi s'il vous plait. Je ne connais que les bases de php, je debute et proche du niveau zéro. Donc SVP expliquez moi simplement comme à un enfant. Merci[/code]

Posté : 15 févr. 2006, 22:59
par jaolan
header("Content-type: image/jpeg"); 
Ton probleme vient d'ici.
En fait tu renvois une image jpeg au navigateur,
le reste de ton code html n'est donc pas pris en compte.

Pour faire ce que tu veux, il te faut donc contourner le probleme, voici une piste:

t'as la page de ton formulaire avec une image qui sera l'image que tu veux obtenir au final:
<img src='image_par_defaut.jpg' id='im1'>

apres validation des choix de l'utilisateur tu utilises un truc du genre:

<script>
var get = 'arguments_pour_creation_image';
document.getElementById('im1').src = 'modif_image.php?'+get;
</script>


avec le script qui contiendra ton code pour fabriquer image, genre:

header("Content-type: image/jpeg"); 
$image = imagecreatefromjpeg($nom_image); 
$blanc = imagecolorallocate($image, 0, 0, 0); 
imagestring($image, 5, 150, 150,$texte, $blanc); 
imagejpeg($image);
Tu peux faire autrement, l'important est de comprendre l'idee:
Si tu forces le type mime en jpeg, le navigateur l'interprete comme une image, ce qui ne pose aucun probleme si tu ne veux afficher que l'image, mais alors pas possible d'y mettre des balises.
Par contre dans une page qui contient une image, rien n'empeche que l'url indiquee soit un script.
Or comme ton script renverra un type mime image/jpeg, le navigateur n'y verra aucune objection. :P

Certains pirates en herbe connaissent bien la methode, meme si elle est utilisee a d'autres fins.

Bon courage.