- 締切済み
HTMLでフォームを作ってPHPで受け取ることができません。
プログラミング超初心者です。本でPHPを勉強中です。HTMLでフォームを作成しPHPでフォームに入力された内容を受け取るというところでつまづいてます。本に紹介されているサンプルスクリプトをローカルホストでブラウザで試しているのですがうまくいきません。 フォーム内に入力しSUBMITのボタンを押してもPHPの方のページが表示されません。2つのファイル名はform.html と form.php 名のですが、ブラウザのアドレスバーが http://localhost/form.html から http://localhost/form.html/form.php に替わりHTMLが再表示されるだけです。 環境は os windows XP SP1 ブラウザ IE6 php 4.2.2 です。 スプリクト載せると800字超えてしまいますので回答に載せます。 お解りになる方いらっしゃいましたらよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- moon_night
- ベストアンサー率32% (598/1831)
PHPよりもサーバーの設定を疑ってみたほうがいいかも。 普通にHTMLからHTMLにリンクを付けたら? form.html から form2.html にリンクをつけると http://localhost/form.html/form2.html になる? 通常のAリンクとFORMタグでのリンクで試してみて。 なったら完全にサーバの設定がおかしい。 Apache?
- cojirou
- ベストアンサー率50% (59/117)
><FORM ACTION="form.php" METHOD="POST"> を <FORM ACTION="./form.php" METHOD="POST"> としてみてもだめですか? アドレスの指定の仕方か、ローカルの設定あたりが 怪しいかと思うのですが。 飽くまで素人考えなので、ご参考までに。
補足
おっしゃるとおりに変えてみたのですがだめでした。 ローカルの設定を調べてみます。 ご意見ありがとうございました。
- moon_night
- ベストアンサー率32% (598/1831)
文字列の受け渡しだけなら800字は超えないです。 ## form.html ## <html> <head> <title>ふぉーむ</title> </head> <body> <form action="form.php" method="POST"> <input type="text" name="com"><br> <input type="submit"> </form> </body> </html> ## form.php ## <?PHP print $_POST['com']; ?> 以上。 form.phpのHTMLタグは面倒なので割愛。
補足
ご回答ありがとうございます。それと説明不足ですみませんでした800字超えるのでといったのはこの質問版の質問文が800文字までみたいなので回答という形で問題のスプリクトを書き込もうと思ってのものでした。 ご回答いただいた内容をコピーして実行してみたのですが、残念ながら結果は同じでした。 本のサンプルを以下に書き込みます。 ##form.html## <HTML> <HEAD> <TITLE>メンバー登録</TITLE> </HEAD> <BODY> <FONT SIZE=5 COLOR=GREEN>メンバー登録</FONT> <HR> <FORM ACTION="form.php" METHOD="POST"> <B>メールアドレス</B> <INPUT TYPE="text" NAME="email" SIZE=30> <P> <INPUT TYPE="checkbox" NAME="keitai" VALUE="1">携帯アドレスの場合チェックする <P> <B>性別</B> <INPUT TYPE="radio" NAME="sex" VALUE="male" CHECKED>男 <INPUT TYPE="radio" NAME="sex" VALUE="female">女 <P> <B>会費負担</B> <SELECT NAME="futan"> <OPTION VALUE="100">全額負担</OPTION> <OPTION VALUE="50">半額負担</OPTION> <OPTION VALUE="0">無料</OPTION> </SELECT> <P> <B>コメント</B><BR> <TEXTAREA ROWS=4 COLS=40 NAME="comment"> </TEXTAREA> <P> <INPUT TYPE="submit" VALUE="登録"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> </BODY> </HTML> ##form.php## <?php $email = $_POST['email']; $keitai = $_POST['keitai']; $sex = $_POST['sex']; $futan = $_POST['futan']; $comment = $_POST['comment']; header('Content-Type: text/html; charset=shift_jis'); ?> <?php echo "メールアドレス=${email}<br>"; echo "携帯アドレス=${keitai}<br>"; echo "性別=${sex}<br>"; echo "会費負担=${futan}<br>"; echo "コメント=${comment}<br>"; ?> (HTML部分割愛) です。 ただご回答いただいたスクリプトでも同じ結果になるということはスプリクトの問題ではなくて実行環境など他の問題なのでしょうか?
http://localhost/form.html/form.php って、アドレスが変ですよ。 本を見直してその通りか確認されてみては。
補足
Uozazaさんのおっしゃるとおりで本の中にある参考の写真の中では、http://localhost/form.html から http://localhost/form.php に替わっているのですが私の環境で実行すると http://localhost/form.html/form.php というふうになってしまうのです。submit のボタンを押すと勝手にそのようなアドレスになってしまいます。 その原因もわからなくて困っております。
補足
monn night さん 何度もありがとうございます。 おっしゃるとおりリンクをつけてみたところおっしゃるとおりの症状になりました。 私には良く解らないのですがやはりサーバーがおかしいのでしょうか? サーバーはphpdev5 beta3という物の中のApache2.0.39を使用しております。 一応本に書いてある通りインストールの段階で設定を変更して使っておりましたが、もしかしたらその途中でミスがあったかもしれません。 具体的な対処法お解りになりましたらお教えください。