php和浏览器中的独立页面导航问题返回按钮问题

时间:2014-11-12 15:14:08

标签: php zend-framework zend-framework2

独立页面导航问题我的意思是在一个项目中我有超过5页。 用户必须按照订单浏览页面(第1页 - >第2页 - >第3页....)。 如果用户直接点击页面3,我将重定向到第一页。 我这样做在第1页当用户点击提交按钮时我自己将变量添加到会话(usernamespace-> navpage ='page 2')

在第2页中,我正在检查

if(usernamespace-> navpage =='page 2')
   //没什么

其他

重定向到第1页;

我遇到问题,当我在第3页用户点击浏览器后退按钮时,它不会重定向到第2页,因为usernamespace-> navpage =='page 3'in history。

请建议我更改与上述浏览器问题无关的导航逻辑。

2 个答案:

答案 0 :(得分:1)

将会话数据设为数组,并根据已完成的页面设置密钥:

//page1
$_SESSION['pages']=[];
$_SESSION['pages'][1]=true;

//page2
if(!isset($_SESSION['pages'][1])
    //redirect
$_SESSION['pages'][2]=true;
//page3
if(!isset($_SESSION['pages'][2])
    //redirect
$_SESSION['pages'][3]=true;
//etc etc

答案 1 :(得分:0)

希望我能正确理解你的问题。你能在那里放一个OR吗?

if(usernamespace-> navpage == 'page 2' || usernamespace-> navpage == 'page 3' )
//nothing 

或者,如果这不适合您的应用程序,您可以创建另一个会话var,即上一页...此变量在导航页面更新时获取之前的值..

用户点击第1页上的提交,然后:

usernamespace-> navpage = 'page 2'
usernamespace-> prevpage = 'page 1'

然后在第2页你有......

if(usernamespace-> navpage == 'page 2' || usernamespace-> prevpage == 'page 2')
//nothing

然后,当用户到达第3页时,请确保准备工作保持在第2页'只要他们不提交。