• ベストアンサー

HTML→PHP フォームの値の受け渡しができません

PHPをはじめたばかりの初心者です。 ネットでいろいろ調べましたがわからず困っています。 お助けくださいm(_ _)m <内容> フォームの入力内容をPHP側で参照できません。 具体的には、 <form method="post" action="test.php"> <select name="BirthDay" size="1"> <option value="1">1月生まれ</option> <option value="2">2月生まれ</option> <option value="3">3月生まれ</option> </select> <input type="submit" value="決定"> </form> で飛ばした値を、 print($BirthDay); で表示させようとしています。 しかし、$BirthDayには何も入ってきません。 ただ、できないのはローカル環境だけで、 実際、他のサーバーにアップしてやると正常に 動作します。 ローカル環境は Win2000SP4+PHP4.4.1+Apache1.3.34 です。 httpd.confを見直しましたがわかりませんでした。 ぜひアドバイスをお願いしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

そういうときは $_POST[BirthDay] で受け取ります GETの場合は $_GET[]です

touchme
質問者

お礼

早速のご回答ありがとうございました。m(_ _)m 確かに受け取ることができました。 $_POSTを使用するのが確実なんですね。 勉強になりました。

その他の回答 (2)

  • eargray7
  • ベストアンサー率0% (0/1)
回答No.3

ちなみに、PHP 4.2.0より前のバージョンでは、 register_globals のデフォルト値はonになっているので、その場合はname=BirthDayの値は$BirthDayで取得できますが、それ以降のバージョンではセキュリティ上の問題からoffになっていて、回答1のような形での取得をすることになっています。 詳しくはマニュアルのhttp://jp2.php.net/manual/ja/language.variables.external.php をよんでみて下さい。

参考URL:
http://jp2.php.net/manual/ja/language.variables.external.php
touchme
質問者

お礼

なるほどregister_globalsの意味を教えていただいたことで今回の問題は完全にすっきりいたしました。 私のやり方は推奨されない方法だったんですね・・・ ありがとうございましたm(_ _)m

回答No.2

#1の方の回答に補足。 GETかPOSTどちらでも受け取れるようにするには、 $_REQUEST[BirthDay] で受け取れます。

touchme
質問者

お礼

補足いただきありがとうございました。 $_REQUESTというのは便利ですね。 使わせていただきます。 一応やりたいことはできるようにはなったのですが、 本来ローカル環境ではこのようにやるのが一般的なのでしょうか?$BirthDayで直接受けたりはしないほうがいいのでしょうか?環境の違いが何なのかまだ少しひっかかっておりまして、恐縮ですがその辺もコメントいただけると・・・ありがとうございましたm(_ _)m

関連するQ&A