diff --git a/src/pages/php/040-work.mdx b/src/pages/php/040-work.mdx index a057976..7a39c03 100644 --- a/src/pages/php/040-work.mdx +++ b/src/pages/php/040-work.mdx @@ -247,9 +247,41 @@ ## 発展課題 -基本的なクイズができたら、Sessionを使ってランダム出題機能を追加してみましょう。 +基本的なクイズができたら、複数の問題からランダムに1問を出題するように機能を作り変えてみましょう。 -Sessionを使って、毎回ランダムに問題を出題する機能を実装します。 +ただし、ここで考えなければ行けないポイントがあります。 +**ランダムに選んだ問題の正解を、どうやって判定すればよいでしょうか?** + +
+ +quiz.phpで問題をランダムに選ぶと、submit.phpでは「どの問題が出題されたか」が分かりません。 +正解の値が分からないと判定できませんね。 + +
+ +
+ +正解をhidden fieldでsubmit.phpに送る方法も考えられます: + +```html + +``` + +しかし、この方法には問題があります。 +ブラウザの開発者ツールでHTMLを見ると、正解が丸見えになってしまいます! + +
+ +
+ +前のページで学んだ**Session**を使えば解決できます! + +- quiz.phpで正解をSessionに保存する +- submit.phpでSessionから正解を取り出す + +これなら、ブラウザ側には正解が送られないので安全です。 + +
@@ -294,7 +326,7 @@ $correctAnswer = $_SESSION["correct_answer"] ?? ""; ``` -これで、ブラウザの開発者ツールでHTMLを見ても正解が分からなくなります! +これで完成です!