PHP重定向到页面问题

问题描述:

我正在设计一个寻宝游戏类的在线测验。总共有10个文件,即1.php,2.php..10.php。只有当玩家回答当前问题页面,他必须重定向到下一页,但在我的情况下,如果玩家修改URL,他可以查看下一个问题,我可以防止这个。感谢您的帮助。PHP重定向到页面问题

+0

你可以使用会话来存储玩家所在的步骤,然后只需要一个question.php页面,根据他们的进度向他们展示下一个问题。 – cope360

问题完成时存储会话变量。如果会话变量的值小于被访问问题的编号,则拒绝访问。

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 
} 
+0

,谢谢你的帮助。我通过存储数据库中回答的问题数量并使用“标题”命令重定向到该页面来解决问题。 –

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

即在4.php,你会做$_SESSION['page'] = 4;

在5.php,你会检查$_SESSION['page']至少4

请注意,你需要呼吁session_start()在使用会话的所有页面*问$_SESSION之前。

只是将其更改为不可预知的名字,像kiran.php代替1.PHP,likeyouknowit.php代替2.PHP等

+1

直到有人将它们写下来并将它们发布到某个论坛。 –

+0

这并不能解决客户的长期问题 –

+0

@Michael:和他们写下答案不同吗?我个人喜欢这种方式:所以如果我必须中途退出,我仍然可以在以后再回来,而不是再次这样做(除非OP需要它)。马克:OP说他只有10页,所以我选择了一个简单的解决方案,而不是一个可扩展的解决方案。 –

你可以一起传递一个随机ID,客户端,当您重定向他到下一页,然后在他到达下一页时验证随机ID。我想这和使用php会话是一样的。 http://us.php.net/manual/en/book.session.php

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

+0

在每个页面中检查是否(回答的问题数量=当前问题-1)。如果真正显示问题,则重定向到用户实际应该在的页面。 –