フォーム処理
掲示板などのように、「フォームから取得したデータを表示する」というスクリプトを制作する場合には、
特殊文字をHTMLエンティティに変換する必要があります。
それには、htmlspecialchars関数を使用し、その処理を「エスケープ処理」と呼びます。
エスケープ処理の例
「<」→「<」
「>」→「>」
「&」→「&」
左側の特殊文字を、右のように変換します。
下記のフォームより、<h1>PHPの基礎</h1>をテキストエリアに入力して送信したものを出力すると、
<h1>タグが反映され、PHPの基礎が見出しとして表示されてしまいます。
<html>
<body>
<form method="post" action="post.php">
<input type="text" name="test">
<input type="submit">
</form>
<?php
echo $_POST["text"];
?>
</body>
</html>
しかし、下記のように、htmlspecialchars関数を使用して出力すると、<h1>はタグではなく通常の文字となり、
<h1>PHPの基礎</h1>がそのまま表示されます。
<html>
<body>
<form method="post" action="post.php">
<input type="text" name="test">
<input type="submit">
</form>
<?php
echo htmlspecialchars($_POST["text"]);
?>
</body>
</html>
