【问题标题】:Tracking Quiz Results with URL, No Database Allowed!使用 URL 跟踪测验结果,不允许使用数据库!
【发布时间】:2010-01-25 15:35:11
【问题描述】:

我需要为移动浏览器创建一个 10 页的测验。它只是一个移动网页,因此无需考虑其他浏览器。

这是我遇到的问题:我不能使用 JavaScript,因为不是每个移动浏览器都支持它。我对其他语言不是很熟练,但我认为也许可以在 PHP 中完成一些事情,因为它是服务器端的。

如果我的第一个 URL 是域并且我输入了正确的测验答案,则下一页的 URL 可能是 domain/?p=1。 URL 不需要做任何事情,只需要计算正确结果的数量。

至于实际代码,我认为它可以包含在 HTML 本身中,因为我不太关心人们在手机上查看源代码。

是否可以编写一行代码,在单击时将 URL 中的 'p=' 属性加一,并且仅将其附加到正确答案上?

这是我的意思的图片:http://i.imgur.com/HbJ5U.jpg

【问题讨论】:

  • 您的问题的答案是“是的,这是可能的”。但是让我说欢迎堆栈溢出!通过发布一些您尝试过但无法工作的代码,您将在此处获得更好的帮助。

标签: php mobile


【解决方案1】:

还有,是什么阻止我手动增加地址栏中的“正确答案”计数器?

您不想使用数据库是因为您的主机中没有可用的数据库,还是因为您不知道如何使用?

我不喜欢这个想法,但您可以使用以下代码获得“正确答案”的数量。

<?php 
    /* Gets current correct answer Count */ 
    $answer_count = $_GET["p"]; 

    /* checks to see if the submitted answer is the same as the correct answer */
    if ($_POST["submitted-answer"] == "correct-answer") {
        $answer_count++;
    }
?>

现在,您只需将修改后的答案计数添加到下一个问题的链接即可。

<a href="link-to-next-question.php/?p=<?php echo $answer_count; ?>">Next Question</a>

如果这是“只是为了好玩”,我不明白你为什么不能这样做。这绝对是解决问题的简单方法。

【讨论】:

  • 如果你手动增加正确的答案,没关系。这是一个有趣的测验,如果人们想作弊让自己感觉更聪明,一定要让他们。我实际上认为大多数公众不会接受这种相关性。我不想使用数据库,因为我个人并不关心结果。结果提供给用户,仅此而已。没有保存或任何东西。
  • 你的例子看起来很简单。连我都能理解 PHP 这么简单。使用您的代码,您如何定义哪个答案是正确的?在表格中?
  • 酷,我很高兴这是你需要的。上面的代码假定用户已经提交了表单并且已经检查了答案的正确性(因此,如果答案正确,$correct 变量将为真)。检查我在 if() 条件中的最终编辑以检查正确性。
【解决方案2】:

执行此操作的标准方法是将内容存储在隐藏的表单变量中。当然,如果这有什么问题,那是一种糟糕的做法,因为最终用户很容易将自己的值放入那些隐藏的表单值中。

【讨论】:

  • 什么都没有。这对人们来说只是一个有趣的测验。如果他们想作弊,让他们。我了解表单等中的隐藏值,但是如何将其附加到 URL 中?
  • @Anders,您不会将其附加到 URL。你会使用 POST。
【解决方案3】:

基于文件的会话不是这里的明显答案吗?

【讨论】:

  • 可能,我主要是一名设计师。我不是在找人来为我做这项工作,只是给我指出正确的方向,因为我的大脑甚至不知道从哪里开始研究。立即签出基于文件的会话...
  • 会话对这类应用程序不利;因为他们在 20 分钟后死亡;
  • @effkay - 对不起,但这听起来对我来说是一个非常幼稚和考虑不周的回答。首先,会话不必在 20 分钟后终止,这取决于它们的配置方式。其次,假设您是正确的,如果您的用户每个问题花费 20 分钟,那么他们可能过于认真地对待这个“有趣的测验”。
  • 这是个人选择的问题。是的,每个问题 20 分钟就足够了:但我仍然更喜欢会话以外的机制:考虑到应用程序的设计原则是可扩展的;同样,这是个人选择的问题。
猜你喜欢
  • 2010-11-30
  • 2010-11-02
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多