PHPに送った外部変数が正常に送られてるか確認する。
篠原 隆司
formやjavascriptから、POSTやGETで送った値がサーバーで正常に受け取れているか気になることありませんか?
また、意図しないデータが送られていたらマズイケースってありますよね。
そんなときは、この関数を走らせて確認してみましょう。
$_SERVER、$_POST、$_GET、$_COOKIE、$_FILES
それぞれに、どんな値が設定されているかを一気に出力します。
webサーバー(PHP)が受け取った時点でセットされている変数ですので、実はこの時点でエスケープやエンコードがおかしかったりして、バグが出ているケースなんかの確認にも重宝します。
ちなみに、この関数はあくまで開発補助ですので、運用時には無効にすることを忘れないほうがいいと思います。
/* * 外部変数を確認する */ function checkOutsideVariable(){ // return; // 運用時はコメントを外して走らせない。 // 出力方法を変更するには、$funcOutput内を書き換えてください。 $funcOutput = create_function('$filename, $lineno, $text' , 'echo $filename . "[" . $lineno . "] " . $text . "<br />\n";' //, 'writeLog(CA_LOG_DEBUG, $filename, $lineno, $text);' ); $funcVariables = create_function('$name, &$values, &$funcOutput' , '$funcOutput(__FILE__, __LINE__, \'########### \' . $name . \' ###########\');' . 'foreach ($values as $key => $value){' . 'if (is_array($value)){' . 'foreach( $value as $key1 => $value1) {' . '$funcOutput(__FILE__, __LINE__, $key . $key1 . "=" . $value1);' . '}' . '} else {' . '$funcOutput(__FILE__, __LINE__, $key . "=" . $value);' . '}' . '}' ); $funcVariables('SERVER', $_SERVER, $funcOutput); $funcVariables('POST', $_POST, $funcOutput); $funcVariables('GET', $_GET, $funcOutput); $funcVariables('COOKIE', $_COOKIE, $funcOutput); $funcVariables('FILES', $_FILES, $funcOutput); $funcOutput(__FILE__, __LINE__, '########### END ###########'); }