У меня очень сложная проблема, которую я не могу объяснить ... вообще. Я действительно надеюсь, что кто-то здесь сможет пролить свет на это затруднительное положение.
На моем веб-сайте есть модуль собственной разработки, который отображает какую-то регистрационную форму. Регистрационная форма состоит из разных частей:
- Личная информация
- Информация об образовании
- Языковые навыки
- Локальный / Exchange Специфическая информация
- Некоторые необязательные дополнительные замечания.
Используя AHAH и вспомогательный модуль AHAH, я создал (читай: запрограммировал) эту форму для «многостраничности». Он имеет заголовок сверху, описывающий, какая часть общей регистрации вы в настоящее время, и какие части вы еще не завершили. У вас есть предыдущая / следующая кнопка для перемещения между различными страницами формы.
Все это контролируется AHAH, и я отслеживаю страницы, используя скрытый элемент формы со значением по умолчанию 'current_page'. Во всяком случае, это отчасти важно.
Важной частью вышеприведенного объяснения является то, что данные всех разных частей сохраняются на разных страницах с помощью переменной form_state. AHAH Helper сохраняет предыдущие значения, введенные в форму, сохраненные в «хранилище» состояния формы.
Теперь некоторые пользователи, похоже, испытывают следующую проблему при регистрации:
В то время как они заполняют свою информацию, и некоторые вызовы AHAH запускаются в форме (например: нажатие следующей кнопки, проверка правильности адреса электронной почты, проверка даты рождения для> = 17) после завершения вызова AHAH, значения внутри элементы формы, которые уже были заполнены, были заменены совершенно другими значениями.
Имя другого человека, его возраст, адрес электронной почты и т. Д. Даже если этот человек, я предполагаю, что это происходит, он заполняет форму на другом частном компьютере, очевидно, в другом сеансе.
Моим пользователям не нужно заходить на сайт, чтобы зарегистрироваться на этой странице. Я не уверен, что это вызывает проблему?
В любом случае, насколько я могу судить, я могу воссоздать проблему только тогда, когда пытаюсь одновременно заполнить форму различными данными из разных браузеров на моем компьютере. В этом случае мне удастся испортить данные form_state. Но поскольку пользователи находятся на разных частных компьютерах, которые, вероятно, используют разные сеансы / файлы cookie / что-то другое, как возможно когда-либо изменить данные формы Form_state на данные формы Form_state другого компьютера, который также заполняет вне формы ??
Я не понимаю? Есть ли какой-то врожденный недостаток в использовании AHAH (& AHAH Helper) для хранения form_state? Если есть, есть ли какая-то работа вокруг? Я просто делаю огромную ошибку newby где-то в коде моего модуля, которая мешает правильной работе формы?
Есть ли кто-нибудь, кто может пролить хоть немного света на эту проблему? Я абсолютно, и совершенно безучастен, и я не могу представить, что происходит не так и как, и даже если я вообще могу это исправить.
Пожалуйста, помогите мне! : S
Заранее спасибо!
С наилучшими пожеланиями,
Tom
Edit:
Эта проблема описывает проблему в drupal 6.x