我有一个 6 页的 PHP 网站,我想有一个这样的功能:
该网站是一个小型问答游戏,您需要每页完成 5 个琐事问题,最后一页显示高分。分数基于您到达那里的速度,因为页面有计时器。
但我发现了一个我想修复的作弊问题。如果您只需输入URL高分.php或question5.php,则可以更快地到达那里,而无需浏览前几页。
有没有办法解决这个问题?
在后端跟踪测验的状态,例如跟踪哪些问题已经回答。当用户尝试访问需要首先完成上一页的页面时,请将用户重定向到该页面。
您可以通过会话实现此目的。
比拥有六个页面更好的解决方案是有一个页面,例如测验.php然后通过此页面汇集所有访问权限。这样可以更轻松地跟踪进度,因为您无需将代码复制并粘贴到各个页面。
附带说明:您还想在后端跟踪测验开始的时间。
这并不难,只需要仔细编码即可。
首先,启动一个会话并将其设置为初始值,例如 1,这意味着用户位于第 1 页。如果他提交了答案,然后用户加载了您网站中的任何其他页面,请创建一个脚本来调用相同的会话值并使用 header("Location:page2.php")强制重定向到第 2 页或他应该所在的页面。
如果会话以某种方式被删除,则使用 isset() 检查它是否存在,如果它不是从头开始的。