[PHP] POST/GETで送信した値をすべて取得する

PHPGET, POST, サーバー変数

フォームなんかでいろいろな値をPOST/GETで送信したときに何が何だかわからくなることってありますよね。

そんな時はPOST/GETに含まれる値をダンプしてみましょう。

※本記事ではPOSTでコードを記載します。

POST/GETで送信された値をダンプする

コードは単純です。POSTに何かしら含まれているときに以下のようにサーバ変数$_POSTをダンプするだけです。

<サンプルフォーム>

<form method="post">
<div><input type="text" name="val1" size="10" value="val1の値"></div>
<div><input type="text" name="val2" size="10" value="val2の値"></div>
<div><input type="text" name="val3" size="10" value="val3の値"></div>
<div><input type="text" name="val4" size="10" value="val4の値"></div>
<div><input type="text" name="val5" size="10" value="val5の値"></div>
<div><input type="text" name="val6" size="10" value="val6の値"></div>
<div><input type="text" name="val7" size="10" value="val7の値"></div>
<div><input type="text" name="val8" size="10" value="val8の値"></div>
<div><input type="text" name="val9" size="10" value="val9の値"></div>
<div><button id="button">Click</button></div>
</form>
if(isset($_POST)) {
var_dump($_POST);
}

<結果>

array(9) { [“sample1”]=> string(13) “sample1の値” [“sample2”]=> string(13) “sample2の値” [“sample3”]=> string(13) “sample3の値” [“sample4”]=> string(13) “sample4の値” [“sample5”]=> string(13) “sample5の値” [“sample6”]=> string(13) “sample6の値” [“sample7”]=> string(13) “sample7の値” [“sample8”]=> string(13) “sample8の値” [“sample9”]=> string(13) “sample9の値” } 

出力された値を整理して表示

ダンプしただけでは見づらいので以下のforeachで表示を整理します。

foreach($_POST as $key => $value) {
echo $key. " : " .$value. "<BR />";
}

<結果>

sample1 : sample1の値
sample2 : sample2の値
sample3 : sample3の値
sample4 : sample4の値
sample5 : sample5の値
sample6 : sample6の値
sample7 : sample7の値
sample8 : sample8の値
sample9 : sample9の値

このようにだいぶ見やすくなりました。

今回私が行いたかったのはこれではなく、フォームから渡された値を処理するコードを簡単に書くことです。

フォームを作成して別のページにPOST/GETで値を渡すことは簡単ですが、それらの値を変数に代入するコードをいちいち書くのは面倒ですね。

ということで、このようにPHPのコードを出力してそれをコピペすればそのあとの処理が非常に簡単です。

foreach ($_POST as $key => $value) {
echo '$' .$key. ' = htmlspecialchars($_POST["' .$key. '"]);<br>';
}

<結果>

$sample1 = htmlspecialchars($_POST[“sample1”]);
$sample2 = htmlspecialchars($_POST[“sample2”]);
$sample3 = htmlspecialchars($_POST[“sample3”]);
$sample4 = htmlspecialchars($_POST[“sample4”]);
$sample5 = htmlspecialchars($_POST[“sample5”]);
$sample6 = htmlspecialchars($_POST[“sample6”]);
$sample7 = htmlspecialchars($_POST[“sample7”]);
$sample8 = htmlspecialchars($_POST[“sample8”]);
$sample9 = htmlspecialchars($_POST[“sample9”]);

以上、

PHPGET, POST, サーバー変数