• ベストアンサー

括弧内の処理の順序

プログラムを見ていて気になった点があります。 htmlspecialchars(mysql_real_escape_string(stripslashes($_POST["inp01"])),ENT_QUOTES) 上記の書き方の場合、処理される順番は 内から「stripslashes」→「mysql_real_escape_string」→「htmlspecialchars」になるんでしょうか? 逆に 外から「htmlspecialchars」→「mysql_real_escape_string」→「stripslashes」 でしょうか。 また処理の順番ですが、 「htmlspecialchars」→「stripslashes」→「mysql_real_escape_string」が正しい形でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

一つ目の質問については、皆さんが回答しているので省略します。 二つ目の質問の、正しい処理の順番について。 まず、stripslashesは、magic_quotes_gpc=Onの設定になっていない場合は不要です。Onになっている場合は、まずstripslashesします。 $inp01 = stripslashes($_POST["inp01"]); DBに入れる際には、mysql_real_escape_stringします。 $sql = "select * from foo where inp01='". mysql_real_escape_string($inp01). "'"; HTMLに出力するときには、htmlspecialcharsします。 echo "<p>inp01は". htmlspecialchars($inp01, ENT_QUOTES). "です</p>\n";

その他の回答 (2)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

処理される順番は 「stripslashes」→「mysql_real_escape_string」→「htmlspecialchars」 で、 たぶん正しい処理の順序は 「stripslashes」→「htmlspecialchars」→「mysql_real_escape_string」 ですかね・・?

回答No.1

前者です。

関連するQ&A