プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。まだまだPHP初心者なのですが..

PHP Ver 4.3.2

にて、$_POST 、 $_GET の値がどうしても
受け取れないのですが、何か設定がおかし
いのでしょうか...

ちなみに、register_global は OFF です。


GET は

URL http://***.com/xxx.php?ID=aaa

echo $_GET["ID"];
print_r ( $_GET );


POSTは、通常通り form の method を POSTに設定して
受け取っていますが、どちらにしても結果は、何も表示されません。

どなたか解決方法をご教授下さい。
また、既出でしたら申し訳ございませんがご指摘下さい。

A 回答 (2件)

サーバ移行と言う事で、


恐らくサーバの設定が異なるせいではと思いました。

試しに
$HTTP_GET_VARS
を使ってみてはいかがでしょうか?

また一度
print_r($GLOBALS)
を行なって値がどこに行っているのか
見てみるのも良いかもしれません。
    • good
    • 0
この回答へのお礼

RESありがとうございます。大変助かります。

print_r($GLOBALS) を早速試してみましたが

HTTP_GET_VARS-Array ( ) Array ( [HTTP_POST_VARS] => Array ( ) [_POST] => Array ( ) [HTTP_GET_VARS] => Array ( ) [_GET] => Array ( ) [HTTP_COOKIE_VARS] => Array ( )...

という感じでやっぱり空でした。
他のグローバル変数にも、私が入れた GET 値は入っていませんでした。

ちなみに、今テストしているソースはこんな感じです。


<?php
echo $_POST["test1"];
print_r( $_POST );
print_r ( $HTTP_POST_VARS );
echo $_GET["test2"];
print_r( $_GET );
print_r ( $HTTP_GET_VARS );
print_r($GLOBALS);
?>

<HTML>
<BODY>
<FORM Method="POST" ACTION="test.php?test2=hoge">
<input type="text" name="test1">
<input type="submit" value="GO">
</FORM>
</BODY>
</HTML>

やはり、サーバー設定だとは思うのですが、
調べても何処が影響しているかわからない状態でして...
すいません。お知恵を貸してください。

お礼日時:2005/02/09 18:09

見当違いなことを言ってたらすいません。


ローカル関数内での呼び出しであれば、global宣言が必要です。

function xxxfunc($var) {
global $_GET;
echo $_GET['ID'];
:
:
}

$_GETや$_POSTがうまく行かないときは、$_REQUESTを試してみるのもいいかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ただ、特に関数内ではないのですよ...

今回、サーバー間でのプログラム移行時に発生した現象で、前のサーバーでは同じコードで問題なく取れていたんですよ。

何ででしょうかね...

お礼日時:2005/02/07 15:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!