PHP|$_POSTされた内容を全て変数にする

Web App

フォームで送られてくる値が大量にあると一つ一つ変数に格納するのは大変。

動的に変数を作成しつつ値をセットする(nameをkeyにvalueを取り込む)。

// $_POSTされた内容を key を変数名としながら一括代入
foreach ($_POST as $key => $value) {
  $$key = htmlspecialchars($_POST[$key], ENT_QUOTES, 'utf-8');
}

コメント

  1. ジンジャー より:

    なぜこの段階でいきなりhtmlspecialcharsなんですか???

    これは最終的なHTML出力時にやるものであって、この時点でhtmlspecialcharsを使うべきではないと思いますが…。

  2. より:

    ジンジャーさん、コメントありがとうございます。ジンジャーさんがおっしゃっているとおり、本来のhtmlspecialchars()の使い方からするとダメですね。

    今回の目的がポストされた内容を一気に(楽して)変数化したく、また後からサニタイズ前の形に戻したいという要望もない前提でしたので、覚え書きでこのように記録していました。

    しかし、このままではhtmlspecialchars()をこんな風に使って構わないと捉えられる方も確かにいらっしゃるかもしれません。

    ですので、元記事を誤解のないよう書き換えてみようと思います。

    ご指摘ありがとうございました。