- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そういうときは $_POST[BirthDay] で受け取ります GETの場合は $_GET[]です
その他の回答 (2)
- eargray7
- ベストアンサー率0% (0/1)
ちなみに、PHP 4.2.0より前のバージョンでは、 register_globals のデフォルト値はonになっているので、その場合はname=BirthDayの値は$BirthDayで取得できますが、それ以降のバージョンではセキュリティ上の問題からoffになっていて、回答1のような形での取得をすることになっています。 詳しくはマニュアルのhttp://jp2.php.net/manual/ja/language.variables.external.php をよんでみて下さい。
お礼
なるほどregister_globalsの意味を教えていただいたことで今回の問題は完全にすっきりいたしました。 私のやり方は推奨されない方法だったんですね・・・ ありがとうございましたm(_ _)m
- susumufire
- ベストアンサー率22% (86/380)
#1の方の回答に補足。 GETかPOSTどちらでも受け取れるようにするには、 $_REQUEST[BirthDay] で受け取れます。
お礼
補足いただきありがとうございました。 $_REQUESTというのは便利ですね。 使わせていただきます。 一応やりたいことはできるようにはなったのですが、 本来ローカル環境ではこのようにやるのが一般的なのでしょうか?$BirthDayで直接受けたりはしないほうがいいのでしょうか?環境の違いが何なのかまだ少しひっかかっておりまして、恐縮ですがその辺もコメントいただけると・・・ありがとうございましたm(_ _)m
お礼
早速のご回答ありがとうございました。m(_ _)m 確かに受け取ることができました。 $_POSTを使用するのが確実なんですね。 勉強になりました。