Bonjour,
j' essaye de faire un petit script qui permettrait de générer des images avec du texte dessus qui serait mis forme lors de la création de l'image.
Seulement quand je veux l'executer il y a plein d'erreurs (je vois mon texte en haut de la page web et puis ensuite une page interminable de signes et lettres et chiffres .
Il y a deux pages (formulaire et page d'affichage) :

1ère page :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<html>
<title>Bienvenue dans D&D QUID</title>
        <body>
<div align="center"><font face="Comic sans Ms" size="6" >
Remplissez les cases ci-dessous <br/>
afin de créer votre carte monstre :</font><br><br>
<form method = "post"  action= "carte.php"></div>
 
Nom du monstre :
<input type= "text" name= "Nom">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Jets de sauvegarde : 
  <input type= "text" name= "jets"><br>
  <br>
                             Taille :
<input type= "text" name= "taille">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caractéristiques :
<input type= "text" name= "carac">
<br><br>
                     Dés de vie :
<input type= "text" name= "DV">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compétences :
<input type="text" name="comp">
<br><br>
                        Initiative :
<input type="text" name="initiative">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dons : 
<input type="text" name="dons">
<br><br>
Vitesse de déplacement :
<input type="text" name="vitesse">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Milieu naturel/climat : 
<input type="text" name="milieu">
<br><br>
           Classe d'armure :
<input type="text" name="CA">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Organistation sociale : 
<input type="text" name="social">
<br><br>
                      Attaques :
<input type="text" name="attaques">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Facteur de puissance : 
<input type="text" name="facteur">
<br><br>
                         Dégâts :
<input type="text" name="degats">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Trésor :
<input type="text" name="tresor">
<br><br>
Espace occupé/allonge :
<input type="text" name="espace">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alignement : 
<input type="text" name="alignement">
<br><br>
       Attaques spéciales :
<input type="text" name="aspe">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Puissance possible : 
<input type="text" name="puissance">
<br><br>
                Particularités :
<input type="text" name="particularites">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Créer la carte !"> 
</form>
        </body>
</html>

la 2ème page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
// Fonction pour déterminer le centrage de la chaine de caractères (elle prend comme paramètre : la chaine et la police d'écriture
function centrage_texte($z,$y)
{
// Je calcule le nombre de caractères dans la chaine
$a = strlen($z);
// Je calcule la taille d'un caractère par rapport à la taille de la police
$b = imagefontwidth($y);
// Je calcule la taille de ma chaine de caractères
$c = $a*$b;
// Je calcule combien il me reste de caractères/espace sur les côtés pour centrer mon texte
$d = 350-$c;
// Je recherche l'emplacement où débutera ma chaine de caractères
$e = $d/2;
// La chaine commencera ... à cet emplacement
return $e;
} 
//******************************************
//  Limite du nombre de caractères par ligne
//
//  nom fonction : CharParLigne($texte,$maxCar)
//   - $texte : texte a formater
//   - maxCar : Nb Maxi de Caracteres par ligne
//
 
function CharParLigne($texte,$maxCar){
 
  //explosion du texte en lignes
  $t_texte=explode("\n",$texte);
  $ret="";
 
  //Balayage de chaque ligne
  for ($x=0;$x<count($t_texte);$x++) {
 
    //chaque de la ligne est placée dans un tableau
    $t_mots = explode(" ", trim($t_texte[$x])); 
    //nb de mots par ligne
    $nb = count($t_mots); 
 
 
    $pos=0; //position courrante dans la ligne (init)
    $LigneFormat="";//Ligne Formatée (init)
 
    //parcours de la ligne mot par mot
    for ($i=0;$i<$nb;$i++){
 
        //mot sans les balises (taille reelle du mot)
        $st_mot=strip_tags($t_mots[$i]);
        //incrementation de la position courrante
        $pos+=strlen($st_mot);
 
        //si la position courrante est inférieure
        //a la longueur maximale parametree
        if ($pos<$maxCar){
          //position courrante incrémentee de 1 (==1 espace)
          $pos++; 
          //on ajoute le mot a la ligne formatée
          $LigneFormat.=$t_mots[$i]." "; 
        }
        //sinon on passe a la ligne (<br>)
        else {                      
          $LigneFormat.="<br>".$t_mots[$i]." ";          
          $pos = strlen($st_mot);
        }
    }
    //une fois tous les mots de la ligne traités
    //on ajoute a la variable de retour
    //  - la ligne formatée 
    //  - <BR> nouvelle ligne
    $ret.=$LigneFormat."<br>";
  }
 
  //une fois toutes les lignes traitees on retourne le
  //nouveau texte formaté
  return $ret;
}
// Commencement de création de l'image :
 
$Nom= $_POST['Nom'];
$jets = $_POST['jets'];
$taille = $_POST['taille'];
$carac = $_POST['carac'];
$DV = $_POST['DV'];
$comp = $_POST['comp'];
$initiative = $_POST['initiative'];
$dons = $_POST['dons'];
$vitesse = $_POST['vitesse'];
$milieu = $_POST['milieu'];
$CA = $_POST['CA'];
$social = $_POST['social'];
$attaques = $_POST['attaques'];
$facteur = $_POST['facteur'];
$degats = $_POST['degats'];
$tresor = $_POST['tresor'];
$espace = $_POST['espace'];
$alignement = $_POST['alignement'];
$aspe = $_POST['aspe'];
$puissance= $_POST['puissance'];
$particularites = $_POST['particularites'];
 
// création de la variable texte mis en forme
 
$texteglobaltemp = print("<b>Taille : </b>$taille <br>
		<b>Dés de vie : </b>$DV <br>
		<b>Initiative : </b>$initiative <br>
		<b>Vitesse de déplacement : </b>$vitesse <br>
	        <b>Classe d\'armure : </b>$CA <br>
		<b>Attaques : </b>$attaques <br>
		<b>Dégâts : </b>$degats <br>
		<b>Espace occupé/allonge : </b>$espace <br>
		<b>Attaques spéciales : </b>$aspe <br>
		<b>Particularités : </b>$particularites <br>
		<b>Jets de sauvegarde : </b>$jets <br>
		<b>Caractéristiques : </b>$carac <br>
		<b>Compétences : </b>$comp <br>
		<b>Dons : </b>$dons <br>
		<b>Milieu naturel/climat : </b>$milieu <br>
		<b>Organisation sociale : </b>$social <br>
		<b>Facteur de puissance : </b>$facteur <br>
		<b>Trésor : </b>$tresor <br>
		<b>Alignement : </b>$alignement <br>
		<b>Puissance possible : </b>$puissance
                ");
$texteglobal = Charparligne($texteglobaltemp,30);		
 
$image = imagecreatefrompng("cartemodele.png");
$noir = imagecolorallocate($image,0,0,0);
$rouge = imagecolorallocate($image,255,0,0);
imagestring($image,5,centrage_texte($Nom,5),100,$Nom,$rouge);
 
imagestring($image,2,80,250,$texteglobal,$noir);
header("Content-type:image\png");
imagepng($image);
 
?>
Le problème de cette page vient peut-être du "header" ou peut-être de la variable $texteglobal

J'ai également deux ou trois problèmes de mise en page pour la page 1 (tabulations), je voudrais qu'ils soient alignés (mais ca, à la rigueur je m'en fiche un petit peu...)

Voilà, donc si quelqu'un connaît les solutions à ces problèmes, merci de les faire partager please...