我正在设计一个寻宝类型的在线测验。总共有10个文件,即1.php,2.php..10.php。只有当玩家回答当前页面上的问题时,他必须被重定向到下一页,但在我的情况下,如果玩家修改了URL,他可以查看下一个问题。我是否会阻止这一点。谢谢你的帮助。
答案 0 :(得分:2)
将用户访问过的最高页码存储在会话变量中。
即。在4.php上,你会$_SESSION['page'] = 4;
在5.php上,您将检查$_SESSION['page']
是否至少为4。
请注意,在使用会话的所有网页上访问session_start()
之前,您需要先调用$_SESSION
。
答案 1 :(得分:1)
问题完成后存储会话变量。如果会话变量的值小于要访问的问题的数量,则拒绝访问。
session_start();
// just finished question 5, for example
// The user may now access question 6
$_SESSION['question'] = 6;
// User attempts to access a question:
// Suppose $current_question is 7
if ($_SESSION['question'] < $current_question) {
// deny
}
else {
// display the question
}
答案 2 :(得分:0)
当您将其重定向到下一页时,您可以将随机ID与客户端一起传递,然后在他到达下一页时验证该随机ID。我想这与使用php会话是一回事。 http://us.php.net/manual/en/book.session.php
答案 3 :(得分:0)
我通过存储数据库中回答的问题数量并使用header
命令重定向到该页面来解决问题。
答案 4 :(得分:-1)
只需将它们更改为不可预知的名称,例如kiran.php而不是1.php,likeyouknowit.php而不是2.php等。