不希望页面跳过或返回

时间:2013-01-07 03:46:08

标签: php javascript

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

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

我需要在所有主流浏览器中使用它,IE,Chrome,Firefox,Firefox,Opera

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

1 个答案:

答案 0 :(得分: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
    

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