重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんばんわ。

現在PHPを使って動的なページを作成しています。
そこで問題です!

あるサイトには・・・GETやPOSTなどで飛ばしたデータを「$a」などという形で取得できると説明していますが、ある別のサイトでは、POSTであれば「$_POST["a"] 」でGETでは「$_GET["a"]」というように異なる説明をしています。

実際、私が開発用に用意したサーバーでは後者のやり方でしか取得できませんでした。

これは何が違うからなのでしょう?

私が持っている参考資料では前者であり、意味がわからずあせっています!

前者で出来るようにしたいのですが・・・。

宜しくお願いいたします。

A 回答 (4件)

サーバーの仕様によります。


php.iniにおいて、global_registerがONになっていると、
$aなどで使えます。
OFFになっていると$_POSTなどを使うしかないです。

global_register=ONは、バージョンいくつからかわすれましたが、デフォルトではOFFになりました。
それまではデフォルトでONでした。

しかし、global_register=ONはセキュリティ的に問題が発生しやすいので、一般的に最近はONにしていることは少ないです。

詳しく知りたければ、global_registerについて調べてみることをおすすめします
(技術者の方のようなので、いろいろと自分で調べたほうがよくわかるかとおもいましたので)

この回答への補足

ご回答有難う御座います。
・・・なるほどそういうことなのですね。
有難う御座いました。

現在、FedoraCore2でPHPなどは全てapt-getを用いてインストールしています。

この状態でおっしゃられています「php.ini」はどこのディレクトリに格納されているかお分かりになられますでしょうか?
これまでずっとWin系でしたので検索方法なども手探りの状況で・・・。

あと少し、、、お付き合いくださいませ。
お手数をお掛けいたしますが宜しくお願い申し上げます。

補足日時:2004/06/17 07:51
    • good
    • 0

#3のおっしゃることがすべてですが、補足します



>php.iniについて
Fedoraはサーバー向きではないので、
使っていない為に、具体的にどこのディレクトリにあるのかは解りませんが、検索してみてください。
#3の方がおっしゃっている方法でもOKですし、コンソールで検索してもいいとおもいます。
全ディレクトリを検索してしまうので、マシンスペックによっては若干時間かかるかもしれませんが、
find / -name php.ini
とコンソールから入力してください。
php.iniという名前のファイルが検索されます。
もしかしたら雛型用もひっかかるかもしれませんが、その辺はわかるかと。

global_registerについては、業務でやっているのでしたら、OFFでできるようになったほうがいいです。
時代はOFFがあたりまえになっており、ONにするサーバはかなり減っていますし、今後はOFFばかりでしょう。

この回答への補足

改善できました!
ご回答有難う御座いました!

補足日時:2004/06/21 12:43
    • good
    • 0

>現在、FedoraCore2でPHPなどは全てapt-getを用いてインストールしています。


>この状態でおっしゃられています「php.ini」はどこのディレクトリに格納されているかお分かりになられますでしょうか?

FedoraCore2は使っていませんが、phpfino();の出力に

Configuration File (php.ini) Path

があるので、それを見れば実動作環境におけるphp.iniが
どこにあるかわかります。

>前者で出来るようにしたいのですが・・・。
(ergister_globals=on)

その設定は、onでも細心の注意を払えば安全なスクリプトを記述出来ますが、お奨めしません。
スクリプトの保守性等も含めて考える場合、外部から取り込んだ変数を探す場合、$_POST['hoge', $_GET['hoge']と記述しておけば、後でソースを読む際に一目瞭然です。

参考とされている資料にある「$aで取得できる」を「$_POST['a']で取得できる」と読みかえたほうがよろしいかと。

この回答への補足

改善できました!
ご回答有難う御座いました!

補足日時:2004/06/21 12:43
    • good
    • 0

 PHPのバージョンが分かりませんが、最近のバージョンのものであると仮定して回答します。


 
 PHPにおいて、HTTPから送られてきた値を取得するにはご質問にも書かれている、$_GETや$_POSTを用いる必要があります。

 それを$aなどの任意の変数へ取得したければ、
 
 $a = $_POST["a"];

 などのように$_POST["a"]を通じて$aへ渡します。
 
>あるサイトには・・・GETやPOSTなどで飛ばしたデータを「$a」などという形で取得できると説明していますが

これはどちらのサイトなのかわかりませんが、上記のような方法で取得する方法が解説されているのではないでしょうか?

参考URL:http://jp.php.net/manual/ja/reserved.variables.php

この回答への補足

ご回答有難う御座います。
まず、このサイトをご覧ください。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

ここでは、$_POST["a"];という方法ではなくフォーム情報を使っています・・・。
これはどういう処理なのでしょうか?

私の書籍にはご回答の内容にもありますような例が載っていました。

上記サイトだけではなく複数のサイトでこの方法が紹介されているのです・・・。

困ったものです・・・。お助けください。

補足日時:2004/06/17 00:38
    • good
    • 0

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