- ベストアンサー
シンプルなPHPのフォームテスト
- シンプルなPHPのフォームテストを行う方法について解説します。
- ランダムに生成された計算の答えをフォームで送信し、正解か間違いかを表示するPHPプログラムの作成方法を紹介します。
- in.phpファイルとout.phpファイルの間違った部分を修正し、正しく動作するようにする方法についても説明します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; > >に変えてみたのですが >やはり答えは同じように全て「間違いです」になってしまうので >違う所に原因があるようです。 ブラウザ側のhtmlソースを確認しましたか? 私の手元では、下記のソースで問題なく動作しています。 <?php if ($_POST) { $kotae = $_POST["kotae"]; $seikai = $_POST["hidden"]; if($kotae == $seikai){ echo "正解です"; }else{ echo "間違いです"; } echo '<a href="">戻る</a>'; } else { $saki = rand(1,9); $ato = rand(1,9); echo "計算:{$saki}X{$ato}="; $seikai = $saki*$ato; echo '<form action="" method="post">'; echo '<input type="text" name="kotae">'; echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; echo '<input type="submit" value="回答"></form>'; }
その他の回答 (3)
- yambejp
- ベストアンサー率51% (3827/7415)
echo '<input type="hidden" name="hidden" value="$seikai">'; ではシングルクォーテーションでくくられた文字列なので hiddenには「$seikai」という文字が入っちゃいますね echo '<input type="hidden" name="hidden" value="'.$seikai.'">'; 的な処理が必要でしょう
お礼
ダブルクォーテーションとシングルクォーテーションの違いなど複雑すぎて頭が痛くなってきます。 とにかく正解をありがとうございました。
- ma-tsu
- ベストアンサー率32% (190/593)
in.phpのソースを確認してみたりout.phpで$kotaeと$seikaiをechoしてみて何が送られてきてるか確認しましょう。 すると簡単です。 name="hidden"のvalueが「$seikai」になっています。 問題の行 echo '<input type="hidden" name="hidden" value="$seikai">'; を echo '<input type="hidden" name="hidden" value="'.$seikai.'">';
お礼
なんとか動作はするようになりました。 ありがとうございました。
補足
「$seikai」は計算の合計値を入れる変数で この変数をhiddenで送信するためということで設定しています。echoで反映されないのでこの書き方自体が間違っているのかもしれません。
- agunuz
- ベストアンサー率65% (288/438)
表示された入力フォームのhtmlソースを(ブラウザで)確認すれば自明だと思います。 >echo '<input type="hidden" name="hidden" value="$seikai">'; 単引用符で括った中では変数は展開されません echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; です。
補足
早速のご指導ありがとうございます。 echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; に変えてみたのですが やはり答えは同じように全て「間違いです」になってしまうので 違う所に原因があるようです。
お礼
なにか違う所も書き違えていたようで 最初のアドバイスで上手く動いていたようです。 とにかくありがとうございました。