- ベストアンサー
$_POST,$_GETの値が空...
はじめまして。まだまだ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に設定して 受け取っていますが、どちらにしても結果は、何も表示されません。 どなたか解決方法をご教授下さい。 また、既出でしたら申し訳ございませんがご指摘下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サーバ移行と言う事で、 恐らくサーバの設定が異なるせいではと思いました。 試しに $HTTP_GET_VARS を使ってみてはいかがでしょうか? また一度 print_r($GLOBALS) を行なって値がどこに行っているのか 見てみるのも良いかもしれません。
その他の回答 (1)
- Mordenkainen
- ベストアンサー率33% (7/21)
見当違いなことを言ってたらすいません。 ローカル関数内での呼び出しであれば、global宣言が必要です。 function xxxfunc($var) { global $_GET; echo $_GET['ID']; : : } $_GETや$_POSTがうまく行かないときは、$_REQUESTを試してみるのもいいかもしれません。
お礼
回答ありがとうございます。 ただ、特に関数内ではないのですよ... 今回、サーバー間でのプログラム移行時に発生した現象で、前のサーバーでは同じコードで問題なく取れていたんですよ。 何ででしょうかね...
お礼
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> やはり、サーバー設定だとは思うのですが、 調べても何処が影響しているかわからない状態でして... すいません。お知恵を貸してください。