PHPはバージョンによってパラメータの格納されている連想配列の名前が変わったり、
register_globals によって変数に直接パラメータが代入される場合があります。
これはサーバの設定/バージョンにより異なります。
通常、POST の値を受け取る値は、現在では
$_POST["param"] で受け取りますが、PHP4.1.0 以前では $HTTP_POST_VARS["param"] で値を受け取っていました。
その他の対応は以下の通り
$_GET ← $HTTP_GET_VARS
$_COOKIE ← $HTTP_COOKIE_VARS
$_FILES ← $HTTP_POST_FILES
$_ENV ← $HTTP_ENV_VARS
$_SERVER ← $HTTP_SERVER_VARS
このように 4.1.0 で名前が結構変わっちゃっています。
より汎用的に多くのサーバで動作させたい場合、これらを判別する必要があります。
<?php
if (isset($_GET)) {
$APP_GET_VARS = $_GET;
} else {
$APP_GET_VARS = $HTTP_GET_VARS;
}
?>
こんな感じに判別した方がよいでしょう。
isset は変数が設定されているかを調べる関数です。
その他変数も同様に処理します。
こういうのを一括して処理するクラスを作るのもよいでしょう。
再利用も効きそうですしね。
スポンサードリンク
もどる