$postをそのまま受け取ると、htmlタグやスクリプトを受け取ってしまいます。
例えば、以下のように、h1タグでhogeを囲って送ると、送られた先のhtmlでhogeがh1で表示されるケースを考えていましょう。
<h1>hoge</h1>
この場合、”htmlspecialchars” postから受け取った値を文字列に変換します。
$_SESSION["hoge"] = htmlspecialchars($_POST["foo"]);
結果、以下のように文字列として値が表示されます。
hoge