用户将在4个单独的页面上输入信息,然后单击“继续”按钮,将其带到下一页。
我知道我不应该阻止用户返回并再次输入信息,但我还需要设置一些不允许用户做这样的事情:
www.page.com/setup1 - > www.page.com/setup3 - > www.page.com/setup4 - > www.page.com/setup2
现在,如果他们只输入网址,他们可能会以他们想要的任何顺序进行。
$URL = $_SERVER["HTTP_REFERER"];
if($ URL ==“http://page.com/setup1”){blah blah}
我有一个变量来处理它们来自的页面,根据它显示某些信息。有没有办法使用该变量来处理我的问题?如果没有,解决这个问题的最佳方法是什么?
答案 0 :(得分:0)
不要使用四个页面,而是编写一个页面并使用JQuery,它允许您显示和隐藏连续的字段等。使用Ajax调用提供任何动态信息,例如基于先前答案的选择器。那些可以填充带有隐藏默认响应的DIV或SPAN。至少有一个优秀的Validate插件可以与JQuery一起使用,因此您可以确保所有字段都正确完成。
优点是增强的用户体验,更快的响应以及减少的服务器负载。这也意味着如果他们想要更改早期数据,您可以通过Ajax和一个好的计划来处理它。
在采用上述方法之前,我曾经使用一个框架页面使用隐藏字段来回发自己来控制流,使用越来越多的post变量传递数据并嵌套if。我使用大量包含文件进行管理以进行更新和新字段
答案 1 :(得分:0)
我的问题是通过会话变量解决的。每个页面都有一个名为' steps'的会话变量。每个步骤都有一个与其所在页面相关联的编号。如果他们之前的会话步骤'不是正确的,它将它们重定向到适当的步骤'页。
$steps = $_SESSION['steps'];
$_SESSION['steps'] = 3
例如,这必须是第3页,或者步骤'在注册过程中。
如果$ steps isn&t = t == 3,我的代码会将它们重定向到注册过程的开始,会破坏会话并且必须正确注册。