4

我正在浏览器上创建一个应用程序,但我不希望用户在浏览器中的某些页面上跳过页面。想想这个。如果我希望用户创建一些东西,但为了让他们能够创建一些东西,他们必须浏览第 1、2 和 3 页,那么如果用户在第 1 页但然后通过输入 url 设法跳到第 3 页会发生什么?它有点搞砸了

再次处理第 1、2、3 页,如果用户完成第 1 页,数据插入到数据库中,但是如果用户在第 2 页,那么我不希望他们返回第 2 页,因为我不希望他们返回更改之前输入的任何详细信息。我不希望用户在使用前进浏览器按钮时做类似的事情。

我需要这个在所有主流浏览器中工作,IE,Chrome,Firefox,Firefox,Opera

示例代码对我非常非常有帮助。

4

1 回答 1

0

您的表单会将答案发回您的服务器。您的服务器必须验证这些答案。如果答案有效,您应该将它们存储在数据库中。如果答案无效,您将需要重新呈现表单,可能会填充用户的输入,并显示某种错误,然后重复此过程。

如果用户的答案是有效的,您会将它们写入数据库并将用户重定向到下一页。在下一个请求中,您可以使用第一页是否存在答案来确定是否应访问第 2 页。如果没有,您需要将它们重定向到第一页。

每个页面中极其简化的逻辑将如下所示:

  • page1.php

    Do I have answers for page 1 questions?
      No: Render page 1 questions
      Yes: Redirect to page 2
    
  • page2.php

    Do I have answers for page 1 questions?
      No: redirect to page 1
      Yes:
        Do I have answers for page 2 questions?
          No: Render page 2 questions
          Yes: Redirect to page 3
    
  • page3.php

    Do I have answers for page 1 questions?
      No: redirect to page 1
      Yes:
        Do I have answers for page 2 questions?
          No: Redirect to page 2
          Yes: 
            Do I have answers for page 3 questions?
              No: Render page 3 questions
              Yes: Render "you are finished" page
    

或者更一般地说,每个页面都应该找到没有答案的第一页,并且(如果那不是当前页面)重定向到该页面。

于 2013-01-07T04:15:42.313 回答