表格中的随机挑战?

时间:2012-02-24 05:10:48

标签: php mysql

现在我正在尝试的是从数据库的表格中的一组问题中随机获取一个问题,并将其显示在表格上供该人回答。如果这是一件坏事,请让我知道我应该怎么做。我想这可能是一种滥用数据库的简单方法吗?我不确定。

嗯,现在我在同一页面上有表格和表格处理。问题在于,当它被提交时,它当然会刷新并改变问题,这意味着除非他们运气好,否则答案是错误的。我不知道如何设置它以便我可以生成随机问题并确保他们提交表单时它是否正确运行而不更改答案。我通过javascript设置进行表单验证,但这对机器人无效。

基本上,我所拥有的是

check stuff, connect to databse, etc

$random = mysql_fetch_row(mysql_query("select * from questions order by rand() limit 1"));

clean submitted data, check, submit, etc.

在表格中,我有

General form stuff, name, email, etc
<label for="question"><?php echo $random_row[1]; ?></label>
<input type="text" name="question" id="question" required="required"/>

所以你可以看看我想做什么,如果以前不清楚的话。

2 个答案:

答案 0 :(得分:1)

你的努力似乎很完美。

您需要在会话中存储问题ID,因为当您在下一页提交表单数据时,您需要提出问题。

因此,您将通过会话中的问题ID存储获取问题详细信息,并在提交的页面上比较答案。

希望这可能会有所帮助。

答案 1 :(得分:1)

如果您真的想要使用相同的页面来处理输入和提交,那么您最终会得到这样的结构。

if (!empty($_POST))
{
    // there is $_POST data, so there must be a submission
}
else
{
    // there is no $_POST data, so the user needs to input
}

要知道用户在提交中回答哪个问题,请在表单中添加隐藏的输入。

<form ...>
    <input type="hidden" name="question_id" value="<?php echo $question_id; ?>" />
    <input type="text" name="answer" />
</form>

收到提交后,您可以使用question_id在数据库中查找正确的答案。将正确答案与用户给出的答案进行比较。

如果您需要有关特定部分的详细信息,请更具体地询问。