むちゃくちゃ単純なところで数時間はまっている…

------------------------------------------------------
$_POST['name1'] = htmlspecialchars($_POST['name1']); //1回目だけ特殊記号変換

echo $_POST['name1'];
echo $_POST['name2'];

$form = "<form action=\"${_SERVER['PHP_SELF']}\" method=\"POST\">
<input type=text name=name1>
<input type=hidden name=name2 value=\"${_POST['name1']}\">
<input type=submit value=\"go\">
</form>
";

echo $form;
------------------------------------------------------
一度受け取った$_POST の中身をhtmlspecialchars で&gt; に変換して
もう一度送っているだけなんだが。

(俺の頭の中では)$_POST['name2']の中身は&gt; 変換済みになっているわけだが、
二回目を受け取ったら(もう一度送ったら)、自動的に元に戻っちゃうわけ?

助言をお願いします。