• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シンプルなPHPのフォームテスト)

シンプルなPHPのフォームテスト

このQ&Aのポイント
  • シンプルなPHPのフォームテストを行う方法について解説します。
  • ランダムに生成された計算の答えをフォームで送信し、正解か間違いかを表示するPHPプログラムの作成方法を紹介します。
  • in.phpファイルとout.phpファイルの間違った部分を修正し、正しく動作するようにする方法についても説明します。

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.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>'; }

okdayook
質問者

お礼

なにか違う所も書き違えていたようで 最初のアドバイスで上手く動いていたようです。 とにかくありがとうございました。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

echo '<input type="hidden" name="hidden" value="$seikai">'; ではシングルクォーテーションでくくられた文字列なので hiddenには「$seikai」という文字が入っちゃいますね echo '<input type="hidden" name="hidden" value="'.$seikai.'">'; 的な処理が必要でしょう

okdayook
質問者

お礼

ダブルクォーテーションとシングルクォーテーションの違いなど複雑すぎて頭が痛くなってきます。 とにかく正解をありがとうございました。

  • ma-tsu
  • ベストアンサー率32% (190/593)
回答No.2

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.'">';

okdayook
質問者

お礼

なんとか動作はするようになりました。 ありがとうございました。

okdayook
質問者

補足

「$seikai」は計算の合計値を入れる変数で この変数をhiddenで送信するためということで設定しています。echoで反映されないのでこの書き方自体が間違っているのかもしれません。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

表示された入力フォームのhtmlソースを(ブラウザで)確認すれば自明だと思います。 >echo '<input type="hidden" name="hidden" value="$seikai">'; 単引用符で括った中では変数は展開されません echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; です。

okdayook
質問者

補足

早速のご指導ありがとうございます。 echo '<input type="hidden" name="hidden" value="' . $seikai . '">'; に変えてみたのですが やはり答えは同じように全て「間違いです」になってしまうので 違う所に原因があるようです。