同时在不同计算机上填写drupal表单会混合不同计算机的form_state数据

时间:2011-12-29 13:51:30

标签: forms drupal module corruption ahah

我有一个非常困难的问题,一个我无法解释的问题......我真的希望有人能够对这种困境有所了解。

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

  1. 个人信息
  2. 教育信息
  3. 语言技能
  4. 本地/交换特定信息
  5. 一些可选的附加说明。
  6. 使用AHAH和AHAH Helper模块创建(读取:编程)此表单为'multipage'。它的标题顶部描述了您当前所在总注册的哪个部分,以及您尚未完成的部分。您有一个上一个/下一个按钮,可以在表单的不同页面之间导航。 这完全由AHAH控制,我使用隐藏的表单元素跟踪页面,默认值为“current_page”。无论如何,除此之外还有点。

    上述解释的重要部分是所有不同部分的数据通过使用form_state变量在不同页面中持续存在。 AHAH Helper保留在form_state的'storage'中保存的表单中输入的先前值。

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

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

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

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

    是否有任何人可以在这个问题上解决一些问题?我绝对,完全没有线索,我无法想象出现了什么问题以及如何,甚至如果我能解决它。 请帮我! :S

    提前致谢!

    最诚挚的问候,

    汤姆

    修改 此问题描述了drupal 6.x中的问题

1 个答案:

答案 0 :(得分:0)

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

问题是使用来自drupal的会话信息将不同计算机的form_state分开。 但是,对于未注册的用户的AHAH表单,这似乎无法正常工作。

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