【问题标题】:How to set time out for tech quiz in PHP or Javascript如何在 PHP 或 Javascript 中设置技术测验的超时时间
【发布时间】:2012-03-10 06:03:54
【问题描述】:

我正在为技术测验开发一个脚本,该脚本将包含 MCQ 类型的问题(一次 1 个问题)。我想为每个用户设置 20 分钟的时间。二十分钟后,用户应该退出。该页面将为每个新问题重新加载。

我应该在 PHP 还是 JavaScript 中设置超时?如何设置超时来执行特定任务?

我也想显示剩余时间,每秒减少一次。

【问题讨论】:

    标签: php javascript timeout


    【解决方案1】:

    制作一个名为 login 的 cookie。 PHP代码:setcookie("loggedin", $username, time()+1200);

    然后检查是否设置了$_COOKIE["loggedin"]。如果没有,则用户未登录。

    编辑:查看this,它提供了一些基本建议,您可以使用一些额外的 javascript 和 ajax 代码来遵循这些建议

    Edit2:也许您可以尝试基于 IP 的解决方案,但一些互联网提供商可能会导致问题:据我所知,有些更改 IP 非常 频繁。如果你使用这个,MySQL 也是必需的。

    【讨论】:

    • 如果用户阻止了 cookie 或删除了他们的 cookie,那该怎么办?
    • 我忘记买豪宅了。我想显示超时!时间每秒都在减少。
    • @j08691:地球上有没有人阻止cookies? Chaitanya:这必须用 javascript 来完成。使用这个答案并爆炸:stackoverflow.com/a/8249225/1176812 与 PHP。然后,使用 AJAX,获取它,并将其传递给 javascript。然后,查找计时器代码。每个问题都有很多教程,如果你找不到好的,我会链接一些。
    • @j08691 是的,有。你绝不能假设。
    • 这是一个简单的 javascript 倒计时:stuntsnippets.com/javascript-countdown 您必须将 time_left 更改为 AJAX 查询的结果:您也许可以使用 jquery 的 AJAX 或 XMLHTTPRequest。
    【解决方案2】:

    我不喜欢 PHP,但我认为最好的方法是结合服务器端和客户端技术。在客户端,我会使用 cookie。但是在服务器中,我会保留会话的开始时间,以便您也可以在服务器上进行验证。如果要显示超时,javascript有计时功能可以使用:http://www.w3schools.com/js/js_timing.asp。在每个刻度上,您都可以更新您的标签。

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多