回答編集履歴
1
検証コードについて追記
    
        answer	
    CHANGED
    
    | @@ -2,4 +2,10 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            「そのまま表示」というのがウェブブラウザの画面で、`ようこそ<田中>さん` みたいに表示されるという事でしょうか?
         | 
| 4 4 |  | 
| 5 | 
            -
            ならばエスケープはむしろ成功していますよね? HTMLの記号である "<" がHTMLとして処理されず**ふつうの文字**として表示されているわけですから。
         | 
| 5 | 
            +
            ならばエスケープはむしろ成功していますよね? HTMLの記号である "<" がHTMLとして処理されず**ふつうの文字**として表示されているわけですから。
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            ----
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ためしに、フォームのメソッドを `post` から `get` にし、PHPのコードも `$_POST` から `$_GET` に変更し、フォームにエスケープされるべき文字列、例えば `<script>alert("***");</script>` と入力し送信してみましょう。
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ブラウザ画面上では、入力されたとおり `ようこそ<script>alert("***");</script> さん` と表示されていますが、ここでソースを表示させてみましょう。`<p>ようこそ<script>alert("***");</script> さん</p>` ときちんと特殊な記号がエスケープされているのが確認できます。
         | 
