我正在编写一个驱动在多个路由器中执行配置命令的应用程序。这是它的设计方式:
Page 1 Page 2 Page 3
+--------+ +--------+ +--------+
| data | PRG | data | PRG | steps |
| enter |------->| review |------->| exec |---+
| page | | page | | page | |
+--------+ +--------+ +--------+ | Ajax
^ |
| |
+--------+
- 用户在第一页填写表单。
- 系统获取更多数据并将其显示在第二页上以另一种形式查看。
- 使用 Ajax 请求从第三页执行配置步骤。
我通过 uniqid() 生成 ID 并将其放入表单中的隐藏元素中来处理多个浏览器选项卡/窗口。每个选项卡/窗口的数据存储在$_SESSION[$ID]
. Post-Redirect-Get 用于摆脱烦人的表单重新提交。
挑战在于,当用户在浏览器中点击“返回”按钮时,会生成一个新 ID。这会导致$_SESSION
和 web 表单不同步。我打算使用粘性表单来使应用程序像向导一样工作,但这将要求 ID 在选项卡/窗口存在期间保持不变。
您能帮我找出如何区分“返回”按钮单击和打开新标签吗?
谢谢你!PN