私はトリビアゲームを作成しています、それがどのように機能するか:
インデックス ページに移動します。
システムは、配列からランダムな質問を生成します。ユーザーが質問に答える
問題が正しければ、システムは「正しい答え」をエコーし、新しい問題を生成します。質問が配列内の回答と等しくない場合、システムは「間違った回答」をエコーし、新しい質問を生成します。
質問の生成の一部を行いましたが、一致する回答に問題があります - 質問に回答すると、送信をクリックした後、質問が自動的に変更されるため、randomQuestion が同じままでない限り、回答が正しくなくなります。
私の友人は、ランダムな質問の部分にはセッションを使用する必要があると言いましたが、それ以外は何もしませんでした。どうすればいいのかよくわかりません。本当に迷っています。
これは私のコードです: 質問の生成
<?php
session_start();
$questions = array(array('What is Google?', 'god'),
array('What is God?', 'gode'),
array('Why is god?', 'godee'));
$randomQuestion = array_rand($questions);
$question1 = $questions[0][0];
$question2 = $questions[1][0];
$question3 = $questions[2][0];
if ($randomQuestion == 0 && !isset($_SESSION['question1'])) {
echo $question1;
} else if ($randomQuestion == 1 && !isset($_SESSION['question2'])) {
echo $question2;
} else if ($randomQuestion == 2 && !isset($_SESSION['question3'])) {
echo $question3;
}
?>
フォーム + 一致する回答 このスクリプトは現在、テストとして質問 1 のみをチェックしています。
<form action="index.php" method="post">
<input type="text" name="answer">
<input type="submit" value="Answer it!">
</form>
<?php
$answer = $_POST['answer'];
if (!empty($answer)) {
if ($randomQuestion == 0) {
if ($answer == $questions[0][1]) {
echo 'Correct Answer!';
unset($_SESSION['question1']);
unset($_SESSION['question2']);
unset($_SESSION['question3']);
}
} else {
echo 'Answer is incorrect.';
return;
}
} else {
echo 'Field is empty';
return;
}
session_destroy();
?>
私が考えたこと:
セッションに関する多くの記事を読んだ後、randomQuestion が設定されているかどうかを確認することを考えました。設定されている場合、新しい質問は生成されません。
質問に回答すると、ランダムな質問の設定が解除され、システムが新しい質問を生成できるようになります。
しかし、私はそれを正しくしなかったので、それは本当にうまくいきませんでした.
私は何を間違えましたか?そして、これを行う最も簡単な方法は何ですか?
ありがとう!