【发布时间】:2011-07-31 07:19:15
【问题描述】:
我使用 CakePHP 完成了一个预订应用程序,其中涉及到结帐页面之前的几个步骤。在这些步骤之间,我将信息存储在会话中。
它的工作原理是第 1 步要求他们填写信息。进入第 2 步时,第 1 步中的信息将被保存到会话对象中。当他们继续进行其他步骤时,该过程会重复。最后结账时,所有数据都会保存到数据库中。
如果用户在浏览器中打开应用程序的一个实例,一切都会很好。但是,一旦他们在同一个浏览器中为同一个应用程序打开了另一个页面或另一个选项卡,就会出现问题。
假设他们在选项卡 A 和选项卡 B 中打开了两个应用程序实例。在选项卡 A 中,他们在步骤 1 中输入了详细信息并继续执行步骤 2。然后用户在选项卡 B 中执行相同的操作。
在用户结帐的最后一步,Tab A 中的信息与 Tab B 中的信息相同。
目前,我只能认为最好的方法是防止用户在两个浏览器实例中打开同一个应用程序。
当用户尝试在选项卡 B 中打开另一个实例时,是否有办法检测并提示用户先在选项卡 A 中填写预订表单?
【问题讨论】: