PHP重定向到页面问题

PHP重定向到页面问题,php,Php,我正在设计一个寻宝类的在线测试。总共有10个文件,即1.php,2.php..10.php。只有当玩家在当前页面上回答问题时,他必须重定向到下一页,但是在我的例子中,如果玩家修改了URL,他可以查看下一个问题。我如何防止这种情况发生。谢谢你的帮助。在会话变量中存储用户访问过的最高页码 i、 e.在4.php上,您将执行$\u会话['page']=4 在5.php上,您需要检查$\u SESSION['page']是否至少为4 请注意,在访问所有使用会话的页面上的$\u session之前,您需要

我正在设计一个寻宝类的在线测试。总共有10个文件,即1.php,2.php..10.php。只有当玩家在当前页面上回答问题时,他必须重定向到下一页,但是在我的例子中,如果玩家修改了URL,他可以查看下一个问题。我如何防止这种情况发生。谢谢你的帮助。

在会话变量中存储用户访问过的最高页码

i、 e.在4.php上,您将执行
$\u会话['page']=4

在5.php上,您需要检查
$\u SESSION['page']
是否至少为4


请注意,在访问所有使用会话的页面上的
$\u session
之前,您需要先调用
session\u start()

只需将它们更改为不可预测的名称,如kiran.php而不是1.php,likeyouknowit.php而不是2.php,等等。

当您将客户端重定向到下一页时,您可以将随机id与客户端一起传递,然后在客户端到达下一页时验证该随机id。我想这和使用php会话是一样的

在问题完成时存储会话变量。如果会话变量的值小于正在访问的问题数,请拒绝访问

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
}
session_start();
//例如,刚刚完成问题5
//用户现在可以访问问题6
$_会议[“问题”]=6;
//用户尝试访问问题:
//假设$current\u问题是7
如果($\会话['question']<$当前问题){
//否认
}
否则{
//显示问题
}

我通过在数据库中存储回答的问题的数量并使用
header
命令重定向到该页面解决了这个问题。

您可以使用会话来存储播放器所处的步骤,然后只需要一个question.php页面,根据他们的进度显示下一个问题。直到有人写下并将它们发布到某个论坛上。这根本不能解决客户的问题term@Michael:这与他们写下答案不同吗?我个人喜欢这种方法:因此,如果中途退出,我仍然可以在以后重新开始,而不是重新开始(除非OP需要)。马克:OP说他只有10页,所以我选择了一个简单的解决方案,而不是一个可扩展的解决方案。@Ahn如果他们写下答案,他们至少需要点击每一页进入下一页。谢谢你的帮助。我通过存储数据库中回答的问题数量并使用“header”命令重定向到该页面来解决问题。在每个页面中,检查是否(回答的问题数量=当前问题-1)。如果为真,则显示问题,否则重定向到用户实际应在的页面。