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 ###########');
}

広告