Php 禁止用户在访问特定url之前访问url?

Php 禁止用户在访问特定url之前访问url?,php,html,session,localhost,Php,Html,Session,Localhost,我用html和php制作了一个问答游戏,URL为“localhost/game/ques1.php”,“localhost/game/ques2.php” 我在其中使用了会话,但是用户可以通过将URL从localhost/game/ques1.php更改为localhost/game/ques2.php来继续下一个问题而不回答问题1 如何阻止用户这样做???一般来说,你会在一个页面上做这些事情,但如果你被说服不这样做,你有两个选择 您可以在进行过程中查看向问题发布数据(包括一些隐藏字段,指示用户

我用html和php制作了一个问答游戏,URL为
“localhost/game/ques1.php”
“localhost/game/ques2.php”

我在其中使用了会话,但是用户可以通过将URL从
localhost/game/ques1.php
更改为
localhost/game/ques2.php
来继续下一个问题而不回答问题1


如何阻止用户这样做???

一般来说,你会在一个页面上做这些事情,但如果你被说服不这样做,你有两个选择

  • 您可以在进行过程中查看向问题发布数据(包括一些隐藏字段,指示用户从问题1开始)
  • 您还可以包含一些动态生成的令牌,这些令牌通过查询参数传递给问题2
  • 您可以使用会话变量来标记每个页面都已被请求,尽管我可以想象有许多方法会失败
  • 你可以保存饼干,尽管这也不是一个好方法

  • 我真的很想在一页纸上完成这一切。您不必一次显示所有内容,我打赌您可以使UI看起来与您现在拥有的非常相似。但是它会更干净,而且加载速度可能更快(因为你不必为每个问题加载所有
    标题和母版页(或任何内容)。

    ques1.php
    中,只需在会话中设置一个变量,如
    $\u会话['lastQuestion']=1
    。然后在
    ques2.php
    中检查
    $\u会话['lastQuestion']==$currentQuestion-1
    其中
    $currentQuestion
    是否与他们正在查看的页面相关。然后当
    ques2.php
    被加载时,将
    lastQuestion
    设置为2,这样你就可以在3上做同样的测试,依此类推。这很有效,兄弟……非常感谢你的帮助