• ベストアンサー

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

  • PHP
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • 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

  • PHPでフォームからURLへの値の受け渡し

    選択された値をURLとして移動させたいと考えています。 例えば、http://example.com/というページにフォームを設置し、 ドロップダウンメニューから四国を選択すると http://example.com/shikoku/というページが表示されるといった具合です。 他のページを参考しつつ自分で考えてみたのですが、2度送信ボタンを押さなければページが表示されません。 最近になってPHPを触りはじめたので、いまいち何がおかしいのかわからず困っています…。 どなたかご教授お願いします。また、変な部分もあるかと思いますので、よろしければ教えてください。 <?php if($_POST['submit']) {$url = $_POST['tiiki']."/".$_POST['ken'] ;}?> <form action="<?php echo $url ;?>" method="post"> <select name="tiiki"> <?php $tiiki = array("kyusyu"=>"九州","shikoku"=>"四国");?> <?php foreach ( $tiiki as $tiiki1=>$tiiki2 ){?> <option value="<?php echo $tiiki1 ;?>"><?php echo $tiiki2 ;?></option> <?php };?> </select><br /> <select name="ken"> <?php $ken = array("fukuoka"=>"福岡","ehime"=>"愛媛");?> <?php foreach ( $ken as $ken1=>$ken2 ){?> <option value="<?php echo $ken1 ;?>"><?php echo $ken2 ;?></option> <?php };?> </select><br /> <input type="submit" name="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • PHPでのフォームの受け渡しについて

    PHPの勉強中の者です。 PHPでフォームの受け取りの時に入力データのIDを受け取り、出力させるやり方について模索しています。 具体的には以下の通りです。 例えば、セレクトフォームのIDをそれぞれAAAとBBBにします。 ーーーーーーーーーー [フォーム内] <form action="file.php" method="post" name=""> <select name="data1" size="1"> <option value="0">選択する</option> <option value="100" id="AAA" >aaa</option> <option value="200" id="BBB" >bbb</option> </select></form> ーーーーーーーーーー [出力結果] AAA は aaa です。 BBB は bbb です。 ーーーーーーーーーー 選択された aaa の受け取りは、 $data1[] = $_POST['data1']; これで出来ると思いますが、idを受け取り出力する方法が分からないのです。 どなたかわかる方ご教授お願い出来ますでしょうか? 宜しくお願いします。

    • 締切済み
    • PHP
  • phpの値の受け渡し方法について

    b.phpの <dl> <form action='a.php' method='post'> <dt>生年月日</dt> <dd> <select name="Y"> <?php $start = 1920; //始まりの年 $end = 2020; //終わりの年 $select = 2000; //最初に選択された状態で表示したい年 for ($i=$start;$i<=$end;$i++){ if($i==$select){ echo "<option value=\"$i\" selected=\"selected\">$i</option>\n"; }else{ echo "<option value=\"$i\">$i</option>\n"; } } ?> </select> 年 <select name="M"> <?php for ($i=1;$i<=12;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 月 <select name="D"> <?php for ($i=1;$i<=31;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 日 </dd> </dl> <input type="submit" value="送信する" /> </form> というコードで取得した生年月日をa.phpに渡し、表示させます。 a.phpファイルで <?php print('誕生日は:' . ($_REQUEST['Y']. '年',ENT_QUOTES)); print(($_REQUEST['M']. '月',ENT_QUOTES)); print(($_REQUEST['D']. '日',ENT_QUOTES)); ?> と、コードを入力しましたら、 誕生日は:1985年1月31日 という値を受け取り、ブラウザ上で表示することはできたのですが、他のコードで表示する方法はないのかと考えております。 もし、他のコードで表示できる方法がありましたらぜひ教えてください。お願いします。

    • ベストアンサー
    • PHP
  • フォームから値の受渡し

    http://www.stackasterisk.jp/tech/php/php02_06.jsp こちらのページを参考にしてみたのですが、うまく表示されません 解決法ご存知でしょうか? 具体的には、display.php3 のページは表示されますが ソースを見ると php の部分になにも書かれてないようです display.php3 > display.php にしたり <? → <?php に変えたりしてみたのですけども 【form.html】 <html><body> <form action="display.php3" method="POST"> <input type="text" name="fName" size="30"><br> <input type="submit" value="submit"> </form> </body></html> 【display.php3】 <html><body> <? print $fName; ?> </body></html>

    • ベストアンサー
    • PHP
  • フォーム内の値のチェックについて

    このようなフォーム(aspでセレクトボックスの数は可変になります。)にてSubmit時に 同じ値が選ばれていたらalertを出すJavaScriptを作りたいのですが、 どのようなものを作ればよろしいでしょうか? <FORM name="TestForm" action="" method="POST" target=""> <TABLE border="1" cellspacing="0" cellpadding="0" width="100%"> <TR> <td>1位</td> <TD> <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> <td>2位</td> <TD > <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> <td>3位</td> <TD> <select name="Select1"> <OPTION value="449">[選択なし]</OPTION> <OPTION value="465">あ</OPTION> <OPTION value="466">い</OPTION> <OPTION value="467">う</OPTION> </select> </TR> </TABLE> <TR><TD> <INPUT type="submit" value=登録 name=B1 onClick=""> </TD></TR> </FORM>

  • フォームから受け取る値について

    フォームから送られてくる値に たまに予期しない内容が入ってくるのですが どういった原因が考えられますでしょうか? 具体的なフォームの内容は下記の通りで a,b,c以外の値が送られてくることがあります。 <FORM action="test.php" method=post> <INPUT type=checkbox name=chk[1] value=a> <INPUT type=checkbox name=chk[2] value=b> <INPUT type=checkbox name=chk[3] value=c> <INPUT type=submit value=OK> </FORM> ローカルにフォーム画面のHTMLをダウンロードし form actionとvalueを変更して実行すれば 送れると思いますが・・他に何かありますでしょうか? よろしくお願い致します。 環境:RedHat7.3+Apache1.3+PHP4.2.2

    • 締切済み
    • PHP
  • Formを使ったPHP間での受け渡しについて

    いつもお世話になっています。 PHP間での変数の受け渡しで・・ <form action="<?= test.php ?>" method="POST">   <input type="hidden" name="id" value="aaa"/>   <input type="submit" name="submit" value="送信"> </form> と記述するとtest.phpには渡したいaaaが渡されるのですが、 これだとsubmitを押さないと渡せないため困っています。 したいことをまとめると、submitを使わずにページが表示されたら スグに変数が渡されるようにしたいです。 いろいろ試してみましたが、力不足で出来ませんでした。 宜しくお願いします!

    • ベストアンサー
    • PHP
  • 別フォームの値を取得したい

    カテゴリーが、HTMLなのかASPなのか、判断がつかないので、とりあえず「その他」に投稿します。 説明が難しいので、わかりにくいと思いますが、よろしくお願いします。 (用語の使い方や表現が間違ってたらすみません) 一つの画面にフォームが二つあり、FORM1へsubmitすると、選択したファイルのダウンロードを行い、別ブラウザ上に表示します。画面は遷移しません。 FORM2へsubmitすると、別画面へ遷移して処理を行います。 別画面に遷移後、FORM1のselect部品のoption値を取得したいのですが、どうしたらいいでしょうか? selectでなければ、hidden属性の部品をFORM2内に設定しておいて、FORM2_OnSubmit()内でセットしてやればいいと思うのですが、selectだと配列になりますよね?(Request.Form("SELECT")(i)といった形式) selectのoption数は動的に変わるので、いくつあるかはsubmitするまでわかりません。 コーディングは、こんな感じです。 <script language="JavaScript"> function DLFunc(f){ ・・・(略)・・・ f.target = ""; f.submit(); } </script> <script language="VBScript"> Sub FORM2_OnSubmit() ・・・(いろいろ処理)・・・ End Sub </script> <form name="FORM1" method="POST" action="DL.asp"> <select name="SELECT" size="5"> <option value="1">ファイル1</option> ・・・(option数は動的に変わる)・・・ </select> <input type="button" value="ダウンロード" OnClick="DLFunc(this.form)"> </form> <form name="FORM2" method="POST" action="Next.asp"> <input name="XXX"> ・・・(以下略)・・・ <input type="submit" value="実行"> </form>

  • まったく同じ<select>フォームの値を連動させたい

    まったく同じ<select>フォームの値を連動させたい ptpで下記のようなコードがあり、まったく同じselectフォームの値を常に連動させるにはどうしたらよいでしょうか。 本当は、ひとつのform内に二つのSubmitボタンがあってはならないような話を聞いたことがありますが・・・ <html> <head> </head> <body> <?php $btn = "<select name='sorttype'>"; $btn .= "<option value='0'>氏名</option>"; $btn .= "<option value='1'>年齢</option>"; $btn .= "<option value='2'>電話番号</option>"; $btn .= "</select>"; $btn .= "<input type='submit' name='exec' value='保存'>"; ?> <form> <?= $btn ?> ああああ<br> いいいい<br> うううう<br> <?= $btn ?> </form> </body> </html>

  • phpについての簡単な質問です

    下のようなphpコードを見たのですが、 (http://okwave.jp/qa/q5324570.htmlのベストアンサー) <form method="post" action="{$_SERVER["PHP_SELF"]}"> <select name="category" id="category" onchange="this.form.submit();"> <option value="0"{$selected["category"]["0"]}>A</option> <option value="1"{$selected["category"]["1"]}>B</option> <option value="2"{$selected["category"]["2"]}>C</option> <option value="3"{$selected["category"]["3"]}>D</option> </select> </form> {$selected["category"]["0"]}という部分がよくわかりません。 二次元配列みたいなものなのでしょうか? ぜひとも教えてください。

専門家に質問してみよう