gpt4 book ai didi

php - 带有 PHP 的多个浏览器选项卡和 "Back"按钮

转载 作者:搜寻专家 更新时间:2023-10-31 22:07:36 25 4
gpt4 key购买 nike

我正在编写一个驱动在多个路由器中执行配置命令的应用程序。这是它的设计方式:

  Page 1            Page 2            Page 3                                             
+--------+ +--------+ +--------+
| data | PRG | data | PRG | steps |
| enter |------->| review |------->| exec |---+
| page | | page | | page | |
+--------+ +--------+ +--------+ | Ajax
^ |
| |
+--------+
  1. 用户在第一页填写表单。
  2. 系统获取更多数据并在第二页以另一种形式显示以供审核。
  3. 使用 Ajax 请求从第三页执行配置步骤。

我通过 uniqid() 生成一个 ID 并将其放入表单中的隐藏元素来处理多个浏览器选项卡/窗口。每个选项卡/窗口的数据存储在 $_SESSION[$ID] 中。 Post-Redirect-Get 用于消除烦人的表单重新提交。

挑战在于,当用户点击浏览器中的“后退”按钮时,会生成一个新 ID。这会导致 $_SESSION 和 Web 表单不同步。我计划使用粘性表单使应用程序像向导一样工作,但这需要 ID 在选项卡/窗口存在期间保持不变。

你能帮我找出如何区分点击“后退”按钮和打开新标签页吗?

谢谢!公号

最佳答案

如果您根据用户访问它们的顺序对您的页面进行编号,并在每个页面的底部声明 session var 值,您可以检测它们来自何处(例如点击返回按钮)。

page 1 = data enter page : $_SESSION['last_page'] = 1;

page 2 = data review page : $_SESSION['last_page'] = 2;

page 3 = steps exec page : $_SESSION['last_page'] = 3;

然后比较它们是否来自按以下条件点击后退按钮:

#on data enter page 1 - checking if user came from data review page 2    
if($_SESSION['last_page'] > 1){
#USER HIT BACK BUTTON - don't re-declare session id
}

关于php - 带有 PHP 的多个浏览器选项卡和 "Back"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16281179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com