- ベストアンサー
クエリ文字列が取得できない
以下のようなプログラムを作りました。 test.php -------------- <HTML><BODY> <?php echo($_REQUEST["n"]); ?> </BODY></HTML> -------------- それで http://(省略)/test.php?n=5 とURLをいれて Query Stringから5を取得させて表示させたいのですが ローカルでのテスト(Apache/1.3.27)はうまくいくのですが サーバーにアップロードすると何も表示されません。 他のPHPのプログラムは動くのですが、どうもこの$_REQUEST["n"];の部分がうまくいっていないようです。 プログラムのミスか、設定のミスか、考えられる対処法を教えていただけないでしょうか? 環境 PHP 4.2.2 サーバー:レンタルサーバー(1-man.net) (phpは使えるサーバーです) Dreamweaver MX
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そのphpが設置されているサーバは getの値での受け渡しを許可していますか? (許可していない所は少ないでしょうけど、一応…) $_REQUESTを$_GETにしても駄目でしょうか?
その他の回答 (2)
直接の回答ではありませんが、変数の設定で困ったときに、 とりあえず表示してみるという方法があります。 たとえば、 print_r($GLOBALS); で全てのグローバル変数が表示されます。
お礼
参考になりました。ありがとうございました。
補足
n=5 というクエリ文字列らしきものは表示されるんですけど・・・ サーバー(1-man.net)に問い合わせてみたところ 「PHPについてはこちらをご覧ください」とあって、php INFO画面へのリンクが張られているだけでした。 独学で何とかしなさいって意味かなぁ。 その中に HTTP_SERVER_VARS["REQUEST_METHOD"] GET というのがあったのですけど、これはGETを禁止されてないって意味なのでしょうか。
- GETSTREET
- ベストアンサー率18% (14/74)
<HTML><BODY> <?php echo $_GET["n"]; ?> </BODY></HTML>
お礼
参考になりました。どうもありがとうございました。
補足
$_GET["n"]; でもダメでした。 何が悪いのでしょう? ちなみにパーミッションは「755」です。何か関係があるでしょうか?
お礼
メールでのサポートは受けられなかったのですが、サーバー管理会社の技術者の方がサンプルを上げてくださり、それを検証してみたところ、なんとか解決しました。 ちなみになんですが サーバーのPHPのバージョンが実は私の勘違いで 4.2.2ではなく4.0.6で $_GETではなく$HTTP_GET_VARSで取得することがわかりました。 <HTML><BODY> echo $HTTP_GET_VARS["n"]; </BODY></HTML> バージョンによって呼び出し変数が違うのだということが勉強になりました。 皆さまありがとうございました。
補足
GETを許可しているかどうか問い合わせてみました。 返事いただいたらこちらにもお知らせします。 ちなみに$_GETにしてもだめでした。