【发布时间】:2011-12-12 06:22:04
【问题描述】:
坦率地说,这只是在 v1.0 中造成了太多麻烦,因为它需要三个表单提交,$_SESSION 会话数据包含所有中间内容 - 只是让用户开始操作,然后打开第二个选项卡并执行第二个操作,践踏会话数据。
我怀疑这是恶意的(但不能打折扣)。更有可能用户开始操作,被打断,忘记他们开始或找不到原始选项卡所以重新开始(然后找到原始选项卡并尝试第二次完成操作)。
由于我使用 PHP 进行编码,我可以在表单提交时检测到会话数据的存在(如果用户打开另一个选项卡,我将如何使用 JS 来做到这一点——我想我需要 Ajax——对吧?)。
所以,每次我开始操作时,我都会检查会话数据中的标志,如果设置了,我会重新加载“对不起,戴夫。恐怕我做不到”页面,否则我设置标志并继续(记得在操作结束时清除它)。
我想这会起作用,但是:
1) 将浏览器应用程序限制为单个选项卡/实例是否可以接受?
2) 我应该尝试在 v2.0 中允许多个实例吗?
还有其他的cmet、帮助或建议吗?
【问题讨论】:
-
如果您遇到此问题,您可能还会遇到用户单击浏览器的后退按钮然后与上一页交互的问题,即使没有多个选项卡也是如此。你不能假设
$_SESSION总是与浏览器同步。
标签: php javascript session