le 20/03/2008 à 22:42
Création d'une image GD à partir d'un formulaire [Bug]
Bonjour,
J'essayes depuis 2 jours de créer une image avec du texte à l'aide de la librairie GD!
Le but: créer une image à partir d'un formulaire ou on peut choisir une police dans une liste déroulante et écrire un texte dans un champ texte.
Le problème: j'arrives à la 1ère soumission à créer l'image avec le texte et la police sélectionnés mais lorsque je veux faire une seconde tentative, le formulaire disparait laissant place à l'image créée la 1ère fois avec le même texte et lorsque je veux faire 'actualiser' l'image reste et le formulaire n'apparaît plus!
Si vous avez une ou des pistes je suis preneur!
Voici le code HTML/PHP:
Etrangement, lorsque je renvoie mon fichier par FTP et que j'actualise dans le navigateur le formulaire se réaffiche?!
Je demande simplement à quel endroit de mon code je fais 'fausse route' :-)
J'essayes depuis 2 jours de créer une image avec du texte à l'aide de la librairie GD!
Le but: créer une image à partir d'un formulaire ou on peut choisir une police dans une liste déroulante et écrire un texte dans un champ texte.
Le problème: j'arrives à la 1ère soumission à créer l'image avec le texte et la police sélectionnés mais lorsque je veux faire une seconde tentative, le formulaire disparait laissant place à l'image créée la 1ère fois avec le même texte et lorsque je veux faire 'actualiser' l'image reste et le formulaire n'apparaît plus!
Si vous avez une ou des pistes je suis preneur!
Voici le code HTML/PHP:
dyn_img.php
<?php
if(isset($_POST['SEND']))
{
if(isset($_POST['TYPO']) && isset($_POST['TEXTE']))
{
// Définission de la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));
// Nom de la police à utiliser
$typo = $_POST['TYPO'];
$texte = stripslashes($_POST['TEXTE']);
//Création de l'identifiant de l'image
$image = imagecreate(800, 50);
// couleur de fond de l'image
$fond = imagecolorallocate($image, 255, 255, 255);
// définition des couleurs du texte
$noir = imagecolorresolve($image, 100, 100, 100);
//$blanc = imagecolorresolve($image, 255, 255, 255);
//$rouge = imagecolorresolve($image, 240, 0, 0);
//$bleu = imagecolorresolve($image, 150, 150, 255);
//$vert = imagecolorresolve($image, 0, 150, 0);
// On écrit le texte provenant du formulaire avec la typo sélectionnée et la couleur noire
imagettftext($image, 20, 0, 20, 30, $noir, $typo, $texte);
// modification des entêtes
header("Content-type: image/jpeg");
// Envoi au navigateur
imagejpeg($image, "dyn_img.php", 100);
$ressource = "ok";
// Libération des ressources
imagedestroy($image);
}
}
?>
<html>
<head>
<title>TEST ::> Création d'une image dynamique en PHP</title>
</head>
<body>
<p>Choisissez une typo dans la liste déroulante et écrivez votre texte</p>
<form method="post" action="">
<fieldset>
<legend>:: Choix TYPO et TEXTE ::</legend>
<p>Quelques polices True Type (.ttf): <select name="TYPO">
<option value="arial">Arial</option>
<option value="ariblk">Arial Black</option>
<option value="tahoma">Tahoma</option>
<option value="times">Times New Roman</option>
<option value="verdana">Verdana</option>
</select></p>
<p>Votre texte: <input type="text" name="TEXTE" value="" size="70" maxlength="200" /> <input type="submit" name="SEND" value="Tester" /></p>
</fieldset>
</form>
<?php
if(isset($ressource))
{
echo "<p>Vous avez choisi la typo ". $typo ."</p>\n";
echo "<p><img src=\"dyn_img.php\" /></p>\n";
unset($ressource, $_POST['SEND']);
}
?>
</body>
</html>
Etrangement, lorsque je renvoie mon fichier par FTP et que j'actualise dans le navigateur le formulaire se réaffiche?!
Je demande simplement à quel endroit de mon code je fais 'fausse route' :-)