htmlにphpの変数の中身を表示するときhtmlspecialcharsを噛ませて
悪意のある値を無力化するというのは理解できたのですが
違います。
html の中にただのテキストとして表示させたい値を出力する場合、html という言語の規則に則った変換を行なう必要があり、その変換を行なうのが htmlspecialchars です。
例えば法人名で「&」が & と変換されて表示されます。
という文章に悪意はありませんが、htmlspecialchars を通さなければ、あなたが意図した通りの表示になりません。あなたに悪意はないですし、↑の入力値に悪意もないと思いますが、htmlspecialchars を通す必要があります。神のような存在がこの世界からすべての悪意を取り払ったとしても htmlspecialchars は必要です。
(tetatail は PHP ではないと思いますが(^_^;))
例えば法人名で「&」が & と変換されて表示されます。
htmlspecialchars が重複して処理されていると考えられます。同じ入力値に対して2回 htmlspecialchars が実行されていませんか?
htmlspecialchars は値を html に出力するときに1回だけ実行する必要があります。
2015/07/21 11:27
2015/07/21 11:32
2020/02/07 22:42