隐藏测试的正确答案

tfugit 发布于 2019-03-09 php 最后更新 2019-03-09 14:31 2 浏览

我有一个包含多选复选框的测试表单。 每个答案都是从Wordpress中提取的,并在一个循环内,每个复选框以下列方式输出:

<input type="checkbox" name="answer[]" value="<?php echo $row['answer']; ?>" />
在Wordpress旁边的每个答案是一个复选框,如果选中,那么这意味着它是正确的答案。这是输出:
$row['correct'];
我如何将数据传递到另一个页面,以检查用户选中的答案是否正确,而不允许用户查看源以查看答案? 在第二页上,我使用以下内容输出用户选中的答案:
$answer = implode(", ",$_POST["answer"]);
echo $answer;
显然,这些是从表单中的输入中提取的。我如何检查每一个是否正确?
已邀请:

quia_a

赞同来自:

看起来您将答案存储在JavaScript数组中 <input type="checkbox" name="answer[]"...,这可以通过PHP(在表单发布到的任何页面上)使用以下内容读取: $answers = json_decode($_POST['answer']) 这是假设您的表单使用POST方法,否则将$_POST更改为$_GET 从那里可以通过使用包含条件表达式的for()循环来循环$answers[]阵列,即if($answers[$i] !== $correctAnswers[$i]) $wrongAnswers++ else $correctAnswers++或类似物。 这一切都发生在服务器端,客户端无法查看。 由于用户将在表单提交时发布到计算页面,因此您可以使用header('Location: results.php');将其从空白页面引导出去。它应该在得分计算循环后包含在脚本的末尾。 想想看,你可能需要将得分存储在$_SESSION[]中,如果你计划告知用户他们是怎么做的,那么可以从结果页面中读取。

ut_et

赞同来自:

我认为有两种可接受的方法:

  1. 对问题进行编号,然后在PHP文件中使用switch语句(或map)来检索问题的正确答案,并检查它。
  2. 将下一个正确的值设置到每个页面上的会话中,并在生成的PHP页面中读取它。
第一种选择可能更可取。