0

我有一个非常困难的问题 atm,我无法解释......根本。我真的希望这里有人能够阐明这个困境。

在我的网站上,我有一个自行开发的模块,显示某种注册表单。注册表由不同的部分组成:

  1. 个人信息
  2. 教育信息
  3. 语言技能
  4. 本地/交易所特定信息
  5. 一些可选的附加说明。

使用 AHAH 和我创建的 AHAH Helper 模块(阅读:编程)此表单为“多页”。它的顶部有标题,描述了您当前在总注册中的哪一部分,以及您尚未完成的部分。您有一个上一个/下一个按钮来在表单的不同页面之间导航。这一切都由 AHAH 控制,我使用默认值为“current_page”的隐藏表单元素跟踪页面。无论如何,这有点无关紧要。

上面解释的重要部分是所有不同部分的数据通过使用 form_state 变量通过不同的页面持久化。AHAH Helper 将先前在表单中输入的值保存在 form_state 的“存储”中。

现在一些用户在注册时似乎遇到了以下问题:在填写信息时,在表单中触发了一些 AHAH 呼叫(例如:按下一步按钮,检查电子邮件地址的有效性,检查生日>= 17) 完成 AHAH 调用后,表单元素中已填写的值已被完全不同的值替换。一个不同的人的名字,他的年龄,他的电子邮件地址等。即使这个人,我认为这就是正在发生的事情,正在另一台私人计算机上填写表格,显然是在不同的会话中。

我的用户无需登录网站即可使用此页面进行注册,我不确定这是否会导致问题?

无论如何,据我所知,只有当我尝试使用计算机上不同浏览器的不同数据同时填写表单时,我才能重新创建问题。在这种情况下,我可以设法破坏 form_state 数据。但是由于用户在不同的私人计算机上,可能使用不同的会话/cookies/what-not,form_state 数据怎么可能更改为另一台也在填写表单的计算机的 form_state 数据?

我不明白这个?使用 AHAH (& AHAH Helper) 来保持 form_state 是否存在某种固有缺陷?如果有,是否有某种解决方法?我只是在模块代码的某个地方犯了一个巨大的新错误,导致表单无法正常工作吗?

请问有没有人可以对这个问题有所了解?我绝对,完全没有头绪,我无法开始想象出了什么问题,以及如何甚至如果我能解决它。请帮我!:S

提前致谢!

最好的祝福,

汤姆

编辑: 这个问题描述了 drupal 6.x 中的一个问题

4

1 回答 1

0

在找到解决方案后,我正在回答我自己的问题(很久以前,但我忘记了这个问题)。

问题是不同计算机的 form_state 使用来自 drupal 的会话信息分开。但是,这似乎不适用于未注册用户的 AHAH 表单。

在能够填写这些表格之前让用户注册解决了所有并发问题。

于 2013-05-22T14:59:47.593 回答