Chez moi ça ne fonctionne pas mais je vais creuser un peu.
Sinon, quelques petits conseils en PHP si tu me permets.
Il préférable d’éviter les guillemets double " et d’utiliser les guillemets simples ’ : les guillemets doubles sont "parsés" par le moteur PHP (contrairement aux guillemets simples), ce qui permet un gain de temps. Bien que ce gain ne soit pas énorme, c’est toujours ça de pris surtout pour sur les pages complexes.
Pour simplifier la lecture du code, tu peux limiter le nombre d’appel à tes variables :
$out = $out." Utilisateur : ";
est équivalent à
$out .= " Utilisateur : ";
L’avant dernier caractère de fin de balise html (lorsqu’il n’y a pas de balise fermante) n’est pas \ mais /.
peut s’écrire
mais pas <br\> (je pense que ça doit générer des erreurs mais je ne suis pas sûr).
Question sémantique html : ça n’a rien de grave mais je trouve ça plus propre

, il est possible d’utiliser les balises html "label" pour les noms des champs et de ne pas mettre
en fin de ligne (le retour à la ligne peut se gérer avec les CSS)
Ton code
$out = $out." Utilisateur : ";
$out = $out."<br\>";
$out = $out." <input type=\"text\" name=\"fullname\" class=\"inputBox\" style=\"width:300px\" value=\"".htmlspecialchars($nom)."\"> ";
$out = $out."<br\>";
est équivalent à
$out .= 'Utilisateur : ';
$out .= '<br />';
$out .= '<input type="text" name="fullname" class="inputBox" style="width:300px" value="'.htmlspecialchars($nom).'" /> ';
$out .= '<br />';
et pourrait être équivalent à
$out .= '<label for="fullname">Utilisateur : <input type="text" name="fullname" class="inputBox" value="'.htmlspecialchars($nom).'" /></label>';
Voilà

Je vais essayer de voir pourquoi ça ne fonctionne pas chez moi.
A plus